Ich habe ein grundlegendes Verständnis von Multi-Threading, aber ich musste nie etwas anderes tun als einfache Timer in einer Anwendung. Kennt jemand eine gute Ressource, die mir eine Tour geben wird, wie man mit Multithread-Anwendungen arbeitet, die Grundlagen erklärt und vielleicht einige der schwierigeren Sachen aufstellt?
Dies ist eine großartige freie Ressource von Joseph Albahari. Threading in C #
Zwei großartige Artikel:
Was jeder Entwickler über Multithread-Anwendungen wissen muss
Verstehen Sie die Auswirkungen von Low-Lock-Techniken in Multithread-Anwendungen
Obwohl dieser Artikel nicht genau das ist, wonach Sie suchen, wird er hoffentlich im Allgemeinen hilfreich sein (d. h. ist verwandt und sehr gut gelesen):
Es gibt 4 grundlegende Möglichkeiten, Threads in .Net zu synchronisieren:
Im Allgemeinen möchten Sie ganz oben in der Liste beginnen und arbeiten. Das bedeutet, zuerst schauen und sehen, ob ein Hintergrundarbeiter-Steuerelement für die Situation geeignet ist. Es geht jedoch ziemlich genau von Windows-Formularen aus, und Sie erzeugen nur einen neuen Thread.
Also versuchen Sie es mit Waithandles. Waithandles eignen sich gut zum Koordinieren mehrerer Threads. Du kannst sie alle rausschmeißen und warten, bis alle fertig sind, oder wenn du eine bestimmte Zahl aktiv halten willst, dann wartest du nur auf eine und spawne die nächste, wenn sie fertig ist. Oder vielleicht weißt du, dass ein Thread viel früher fertig ist, also kannst du warten, bis er fertig ist, ein wenig Arbeit verrichten und dann warten, bis der Rest fertig ist.
WaitHandles scheinen vielleicht ein bisschen viel zu sein, wenn Sie zum Beispiel nur einen zusätzlichen Thread generieren und Sie nicht blockieren wollen, bevor es fertig ist. Dann können Sie einen Callback verwenden, so dass die von Ihnen angegebene Funktion aufgerufen wird, sobald der Thread abgeschlossen ist.
Schließlich, wenn und nur wenn aus irgendeinem Grund nichts von dem oben genannten funktioniert, können Sie auf das Polling zurückgreifen.
Ich kann mir fünf verschiedene Möglichkeiten vorstellen, einen neuen Thread in .Net zu bekommen, auch grob in der Reihenfolge:
Eine der besten Quellen, die ich zu diesem Thema kenne, ist das Buch "threading in C #": Ссылка
Ich habe einen großartigen Überblick über alles, was ein .net-Entwickler verstehen muss, um Multi-Thread-Anwendungen zu programmieren.
Tags und Links .net multithreading reference