2009-08-26 31 views

Antwort

3

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/

1

Wenn Sie sprechen, einen Schlaf Thread aufwacht - Thread.Suspend() (wait) - Thread.Resume() (go/wake up)

Verwandte Themen