Ich habe einen Thread im Hintergrund ausgeführt. Wie sende ich Nachrichten aus meinem Haupt-Thread? Die einzige msg, die ich senden muss, ist 'go'/'wakeup'Übergeben einer Nachricht an einen anderen Thread in C#
Antwort
Wenn Ihr Gewinde tut nichts, bis Sie wollen, dass es startet, warum dann anfangen, bis Sie wollen, dass es geht?
Wenn Sie Ihren Hintergrundthread ausführen möchten, dann pausieren/auf ein Ereignis warten und dann fortfahren, besteht eine einfache Methode darin, die Klassenfamilie EventWaitHandle
zu verwenden.
Ein einfaches Beispiel (aus this question). Beide Themen sollten Zugriff auf die folgenden haben:
private ManualResetEvent _workerWait = new ManualResetEvent(false);
Dann in Ihrem Arbeitsthread:
_workerWait.WaitOne();
Nun wird es bis zum Hauptthread Anrufe blockieren:
_workerWait.Set()
Für eine Ausführlichere Diskussion Ihrer Optionen und einige Beispiele finden Sie unter: http://www.albahari.com/threading/
Verwenden Sie die System.Threading.Semaphore Klasse.
Wenn Sie sprechen, einen Schlaf Thread aufwacht - Thread.Suspend() (wait) - Thread.Resume() (go/wake up)
Verwendung AutoresetEvent oder ManualResetEvent
- 1. C++ - Thread: Wie sende ich eine Nachricht an einen anderen Long-Live-Thread?
- 2. C# -Tcpclient-Client Nachricht an einen anderen Client senden
- 3. Nachricht an Anrufer in C++ übergeben
- 4. Senden einer Nachricht an einen Handler auf einem toten Thread
- 5. Übergeben eines unserializierbaren Objekts an einen Handler (aus untergeordnetem Thread)
- 6. Übergeben von Etikettendaten aus einer Tabellenansicht an einen anderen Ansichtscontroller
- 7. Parameter an Java übergeben Thread
- 8. NULL an einen Strukturzeiger in C übergeben?
- 9. C++ einen Vektor an einen anderen anhängen
- 10. Übergeben einer Methode an ein BackgroundWorker.DoEvent C#
- 11. Übergabe von Daten an einen anderen Thread in einer C++ Winsock App
- 12. Aufruf einer Funktion von anderen Thread in C#
- 13. RuntimeException von Google Analytics für Android "Senden einer Nachricht an einen Handler für einen toten Thread"
- 14. Server/Client-Nachricht in C übergeben
- 15. Daten an einen anderen View-Controller im Navigationscontroller übergeben
- 16. Erkennen, wenn ein Objekt an einen neuen Thread in C++ übergeben wird?
- 17. Wie übergeben Sie mehr als einen Parameter an einen C# -Thread?
- 18. Senden einer Nachricht an einen Handler in einem toten Thread Google Admob Belohntes Video
- 19. Zugriff auf einen Socket, der an Thread übergeben wurde
- 20. Übergeben von Identitätswechsel-Token für einen verwalteten Thread an einen nicht verwalteten Thread
- 21. Wert an einen anderen Controller in angularjs übergeben
- 22. Das Übergeben von Objekt an Thread schlägt fehl - C#
- 23. Wie kann ich eine Nachricht an einen anderen Knoten senden?
- 24. Erhalten einer beschädigten Pipe beim Übergeben einer MySQL-Verbindung an einen Python-Thread
- 25. Übergeben einer Liste an einen Prozess tcl
- 26. android - Nachricht von Broadcast an Aktivität übergeben
- 27. SAPUI5: Übergeben eines Modells von einem Controller an einen anderen
- 28. Können Sie Webdienstanrufe generisch an einen anderen Server übergeben?
- 29. Wie kann ich eine Funktion an einen anderen Thread senden?
- 30. Zurückgeben einer Nachricht aus einer gespeicherten Prozedur an C# app