Search
Home
Startseite
Blog
Über dev-sky.net
10 gute Entscheidungsgründe für dev-sky.net
Blog
Aktuelle Posts
Übersicht aller Posts
Leistungen
SharePoint
SharePoint Beratung
SharePoint Konzeption
SharePoint Entwicklung
Anwendungsentwicklung
Softwarearchitekturen
.NET Entwicklung
ASP.NET Entwicklung
Training / Schulungen
Schulungen
Training & Coaching
Kontakt
dev-sky.net
Marc Andre Zhou
Leistungsangebot
Zertifizierungen
Lebenslauf
IT Profil
Kontaktaufnahme
Direkte Nachricht
Mail
Anrufen über Skype
Download vCard (vcf)
Weitere Profile
MCVP Virtual Business Card
XING Profil
Gulp Profil
FreelanceMap Profil
Publikationen
Fachartikel
windows developer
SharePoint Magazin
Der Entwickler
Developer World
Präsentationen / Vorträge
Basta 2008 - Herbst
Basta 2009 - Frühling
Basta 2009 - Herbst
Basta 2010 - Frühling
Basta 2010 - Herbst
Basta 2011 - Frühling
Basta 2011 - Herbst
Fachbücher
Parallel Computing in .NET
Quellcodes und Beispiele
SharePoint 2010 Entwicklung
Quellcodes und Beispiele
Lösungen
SharePoint WebParts
List Data to Binq Map
Youtube Integration
DataBase Integration
SharePoint Tools
Page Layout correction
Parallel Computing in .NET
Multicore-Programmierung von .NET 2.0 bis 4.0
Kapitel 1
Listing 1.1:
Einfacher Bubblesort
Listing 1.2:
Verwendung von OpenMP
Kapitel 3
Listing 3.1:
Nutzung der CreateThread-Methode aus der kernel32 DLL
Listing 3.2:
Erzeugung eines Threads mit importierter kernel32.dll-Funktion
Listing 3.3:
Vollständige kernel32.dll-basierte Threadimplementierung
Listing 3.4:
Erzeugung eines Managed (.NET-)Threads
Listing 3.5:
Mischung von kernel32.dll- und Managed-Funktionen
Listing 3.6:
Warten auf das Beenden eines Threads
Listing 3.7:
Abbruch eines Threads
Listing 3.8:
Fehlerbehandlung und Fortsetzung des Threads
Listing 3.9:
Verwendung der ParameterizedThreadStart-Klasse
Listing 3.10:
Rückgabewert aus Thread abrufen
Listing 3.11:
Verwendung eines Background Threads in WinForm
Listing 3.12:
Änderung einer gemeinsamen Variablen
Listing 3.13:
Der IL-Code für die Anweisung ++
Listing 3.14:
Verwendung der Interlocked.Increment-Methode
Listing 3.15:
Verwendung von volatile
Listing 3.16:
Verwendung des Thread Local Storages (TLS)
Kapitel 4
Listing 4.1:
Gleichmäßige Monitor.Enter- und Monitor.Exit-Aufrufe
Listing 4.2:
Verwendung von 'this' als Sperrobjekt
Listing 4.3:
Verwendung eines Value Types als Sperrobjekt
Listing 4.4:
Korrekte Anwendung der Monitor-Klasse
Listing 4.5:
Producer/Consumer-Umsetzung mittels Wait und Pulse
Listing 4.6:
Verwendung der lock-Anweisung
Listing 4.7:
Verwendung eines systemweiten Mutex-Objekts
Listing 4.8:
Festlegung der Zugriffsrechte für ein Mutex
Listing 4.9:
Verwendung einer Semaphor-Sperre
Listing 4.10:
Verwendung von ManualResetEvent
Listing 4.11:
Verwendung von EventWaitHandle
Listing 4.12:
Verwendung der ReaderWriteLock-Klasse
Kapitel 5
Listing 5.1:
Warten auf mehrere Threads
Listing 5.2:
Übergabe und Abrufen von Threadwerten
Listing 5.3:
Verwendung der Methode QueueUserWorkItem
Listing 5.4:
Verwendung der Methode RegisterWaitForSingleObject
Listing 5.5:
Manuelle Aufteilung der Arbeitslast
Listing 5.6:
Kontrollierter Abbruch eines Threads
Listing 5.7:
Verwendung der Methode Thread.Interrupt
Listing 5.8:
Warten auf Clientverbindungen
Listing 5.9:
Konstruktor der ClientSession-Klasse
Listing 5.10:
Verarbeitung von eigehenden Nachrichten
Listing 5.11:
Versendung von Nachrichten
Listing 5.12:
Definierte Kommandos
Listing 5.13:
Konstruktor der Klasse ChatControl
Listing 5.14:
Threadsicheres Einfügen von Daten in eine Liste
Listing 5.15:
Aufbau einer Verbindung zum Chatserver
Listing 5.16:
Verarbeitung von eintreffenden Nachrichten
Kapitel 6
Listing 6.1:
Erzeugung eines Tasks
Listing 6.2:
Übergabe von Parametern an einen Task
Listing 6.3:
Übergabe von Parametern an einen Task
Listing 6.4:
Verwendung von Thread, Threadpool und Task-Klasse
Listing 6.5:
Fehler durch nicht geschützte, gemeinsame Variable
Listing 6.6:
Verwendung des Cancellation Frameworks
Listing 6.7:
Abbruch mehrerer Tasks
Listing 6.8:
Abbruch mehrerer Tasks
Listing 6.9:
Nutzung der ContinueWith-Methode
Listing 6.10:
Task mit Rückgabewert
Listing 6.11:
Verarbeitung von Fehlern
Listing 6.12:
Verwendung von Parallel.For und Parallel.ForEach
Listing 6.13:
Möglichkeiten einer sequenziellen for-Schleife
Listing 6.14:
Verwendung der generischen parallelen for-Schleife
Listing 6.15:
Umsetzung eines Schleifenabbruchs
Listing 6.16:
Verwendung der Parallel.Invoke-Methode"
Listing 6.17:
Parallel.Invoke und Fehlerbehandlung
Listing 6.18:
Abbruch von Parallel.Invoke
Listing 6.19:
API der Klasse ConcurrentQueue
Listing 6.20:
Verwendung der Klasse BlockingCollection
Listing 6.21:
Verwendung der Klasse ConcurrentDictionary
Listing 6.22:
Verwendung der Klasse Barrier
Listing 6.23:
Wiederverwendung einer Barrier-Instanz
Listing 6.24:
Verwendung der CountDownEvent-Klasse
Listing 6.25:
Verwendung der Klasse ManualResetEventSlim
Listing 6.26:
Verwendung der Klasse SemaphoreSlim
Listing 6.27:
Verwendung der Klasse SpinWait
Listing 6.28:
Einfache Verwendung der Klasse Lazy
Listing 6.29:
Verwendung der Klasse ThreadLocal
Listing 6.30:
Einfache Verwendung der Klasse LazyInitializer
Listing 6.31:
Komplexe Verwendung der Klasse LazyInitializer
Kapitel 7
Listing 7.1:
Einfache LINQ-Abfrage parallel ausführen
Listing 7.2:
Definierte AsParallel-Erweiterungsmethode
Listing 7.3:
Verwendung von MergeOptions
Listing 7.4:
Verwendung von WithDegreeOfParallelism
Listing 7.5:
Abfrageoperationen
Listing 7.6:
Abbruch einer PLINQ-Abfrage
Listing 7.7:
Kooperativer Abbruch einer PLINQ-Abfrage
Listing 7.8:
PLINQ-Fehlerbehandlung
Listing 7.9:
Struktur der Testdaten
Listing 7.10:
LINQ-Abfrage mittels Enumerable
Listing 7.11:
Parallele Version des Beispiels 7.10
Listing 7.12:
LINQ-Abfrage mittels Abfragemethoden
Listing 7.13:
Parallele Version des Beispiels 7.12
Listing 7.14:
LINQ-Abfrage mittels Query Expressions
Listing 7.15:
Parallele Version des Beispiels 7.14
Listing 7.16:
PLINQ und gemeinsame Variablen
Listing 7.17:
PLINQ ohne explizite Sortierung
Kapitel 8
Listing 8.1:
Testprogramm
Kapitel 9
Listing 9.1:
Verwendung eines CCR Ports)
Listing 9.2:
Verwendung eines Ports mit PortSets
Listing 9.3:
Definition eines PortSets über den Konstruktor
Listing 9.4:
Registrierung eines Port mit zugehörigem Receiver
Listing 9.5:
Permanente Bindung eines Ports
Listing 9.6:
Verwendung eines eigenen Dispatchers
Listing 9.7:
Verwendung zweier Dispatcher mit unterschiedlicher Priorität
Listing 9.8:
Verwendung von Bedingungen
Listing 9.9:
Verwendung von Arbiter.Choice
Listing 9.10:
Verwendung von JoinedReceive
Listing 9.11:
Verwendung der Klasse MultipleItemReceiver
Listing 9.12:
Verwendung der Methode MultipleItemReceive
Listing 9.13:
Verwendung von JoinSinglePortReceiver
Kapitel 10
Listing 10.1:
Verwendung von Interlocked bei der Verwendung von Threads
Listing 10.2:
Verwendung von Interlocked bei der Verwendung von Tasks
Listing 10.3:
Umsetzung eines einfachen Agenten
Listing 10.4:
Channel-Definition
Listing 10.5:
Definition von Regeln innerhalb einer Channel-Definition
Listing 10.6:
Ein komplexes Axum-Programm
Listing 10.7:
Verwendung von Netzwerkoperatoren
Listing 10.8:
Request-Reply-Muster mit Axum
Listing 10.9:
Konvertierung von Schemata mittels coerce
Listing 10.10:
Verwendung von reader- und writer-Agenten
Listing 10.11:
Die atomic-Anweisung
Listing 10.12:
Rollback einer Transaktion
Listing 10.13:
Hauptprogramm
Listing 10.14:
Hauptprogramm
Listing 10.15:
Beispiel für nicht threadsafe
Listing 10.16:
Einsatz von STM.NET
Willkommen beim Quellcode Browser
Zeige Zeilennummern | Quellcode der Seite:
Hier finden Sie alle Quellcodes aus dem Buch "Parallel Computing unter .NET"
Auf der linken Seite sind die Listings pro Kapitel abrufbar.
Über die Schaltfläche "Code Kopieren" können Sie das Listing in die Zwischenablage übernehmen und von da aus in z. B. Visual Studio einfügen.
Ebenfalls kann jedes Listing über die Schaltfläche "Drucken" ausgedruckt werden.
Quellcode Browser | (c) by Marc A. Zhou
www-sw-consultant.de
| Parallel Computing in .NET | 11.12.2009
Web Toolbar by Wibiya