Archiv der Kategorie: Multithreading

Multithreading in C#, Teil 15: Event Wait Handles (AutoResetEvent, ManualResetEvent, CountdownEvent)

Ein Einsatzgebiet parallel laufender Threads besteht in der gemeinsamen Abarbeitung einer Aufgabe. Durch die parallelen Threads können Teilbereiche der Aufgabe gleichzeitig erledigt werden. In solchen, aber auch in vielen andern Szenarien, ist eine Synchronisation der Threads nötig. Diese Synchronisation kann … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , , | Kommentar hinterlassen

Multithreading in C#, Teil 14: ReaderWriterLockSlim

In Multithreading Szenarien erfolgen häufig lesende und schreibende Zugriffe auf Ressourcen, ausgehend von mehreren parallel laufenden Threads. Parallel lesende Zugriffe sind dabei zumeist unkritisch. Threadsicherheit ist aber bei schreibenden Zugriffen zu beachten. Kommen Sperrmechanismen wie lock oder Monitor zum Einsatz, … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit | Kommentar hinterlassen

Multithreading in C#, Teil 13: Synchronization Context

Im Teil 11 dieser Artikelserie habe ich Ihnen gezeigt wie ein manuelles Sperren von Code Abschnitten mittels Monitor, lock, Mutex und Semaphoren erfolgen kann. Im heutigen Artikel möchte ich Ihnen eine alternative Möglichkeit zu diesen manuellen Mechanismen vorstellen. Diese Alternative … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , , , | Kommentar hinterlassen

Multithreading in C#, Teil 12: Lock vs. Monitor

Im vorhergehenden Artikel dieser Artikelserie habe ich Ihnen gezeigt wie Sie mittels des lock Befehls Codeabschnitte multithreadsicher gestalten können. Mittels lock kann dabei sichergestellt werden das ein oder mehrere Codeabschnitte nicht gleichzeitig von mehreren Threads ausgeführt werden. Der Monitor Befehl … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , | Kommentar hinterlassen

Multithreading in C#, Teil 11: Lock, Monitor, Mutex, Semaphore, SemaphoreSlim

In diesem Artikel möchte ich Ihnen die grundlegenden Sperrmechanismen näher bringen, mit denen sich threadsichere Quellcodebereiche realisieren lassen. Dabei werden ich Ihnen die lock, Monitor, Mutex und Semaphore Mechanismen aufzeigen.   lock Mittels des lock Befehls kann sichergestellt werden, dass … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , , , , | 2 Kommentare

Multithreading in C#, Teil 10: Error Handling in Threads

In Multithreading Anwendungen stellt sich immer wieder die Frage wie das Exception Handling der einzelnen Threads erfolgen soll. Was geschieht wenn in einem ein Thread eine Exception geworfen wird? Wie lässt sich diese abfangen? Wird bei einer unbehandelten Exception nur … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , | Kommentar hinterlassen

Multithreading in C#, Teil 9: Lambda Expressions mit Variablen

Die Datenweitergabe an einen Thread lässt sich relativ leicht durch den Einsatz von Lambda Expressions realisieren. Diese Daten können dabei Variablen der umschliessenden Methode sein, in welcher die Lambda Expression definiert wurde. Wie bereits in einem früheren Artikel gezeigt, wird … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , | Kommentar hinterlassen

Multithreading in C#, Teil 8: Speicherzugriffe

Im achten Teil der Artikelserie zum Thema Multithreading in C# möchte ich Ihnen die Auswirkungen der optimierten Speicherverwaltung des Compilers, der CLR und der CPU auf Ihren Quellcode aufzeigen. Als Beispielanwendung werden wir einen Adapter für eine Fremdkomponente entwickeln. Adapter … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , , , , | Kommentar hinterlassen

Multithreading in C#, Teil 7: Caching

In diesem Teil der Artikelserie möchte ich Ihnen an einem Beispiel zeigen welche Auswirkungen die Speicherverwaltung im .NET Framework auf den Programmfluss haben kann. Der Compiler, die CLR und auch die CPU nutzen Caching Mechanismen zur Zwischenspeicherung von Variablenwerten. Wird … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , , , , | Kommentar hinterlassen

Multithreading in C#, Teil 6: Exception Handling und Threadsicherheit in Parallel.For und Parallel.ForEach

Im vorhergehenden Artikel dieser Artikelreihe habe ich Ihnen gezeigt wie Sie mittels Parallel.For und Parallel.ForEach Schleifen erstellen können, deren Iterationsschritte parallel verarbeitet werden. In diesem Artikel möchte ich daran anknüpfen und Ihnen zeigen wie die Fehlerbehandlung und die Threadsicherheit bei … Weiterlesen

Veröffentlicht unter .NET, C#, Multithreading | Verschlagwortet mit , | 1 Kommentar