2009-08-26 6 views
1

私はスレッドをバックグラウンドで実行しています。私はどのように私のメインスレッドからメッセージを送信するのですか?私が送る必要があるメッセージは「go/wakeup」です。C#の別のスレッドにmsgを渡す

答えて

3

あなたのスレッドの場合あなたがそれが始まりたいと思うまでは何もしていません。

バックグラウンドスレッドを実行してからイベントを一時停止または待機してから、続行する場合は、簡単な方法としてEventWaitHandleファミリのクラスを使用します。

単純な例(this questionから取得)。

_workerWait.Set() 

:それはあなたのメインスレッドの呼び出しまでブロックします、今

_workerWait.WaitOne(); 

:あなたのワーカースレッドで、次に

private ManualResetEvent _workerWait = new ManualResetEvent(false); 

:どちらのスレッドは下記にアクセスする必要がありますあなたのオプションといくつかの例の詳細な説明は、http://www.albahari.com/threading/

1

あなたが眠っているスレッドを目覚めについて話している場合は - ないThread.suspend()(待機) - Thread.resumeが()(行く/ウェイクアップ)