Thread.CurrentThread.Join()を呼び出すの効果はどのような場合、及び/ときには、それを呼び出すために理にかなって?Thread.CurrentThread.Join()はいついつ理解できますか?
答えて
)
あなたは、現在のスレッドの実行、および効果的に死んだロック、それをブロックします。現在のスレッドが終了するまで、現在のスレッドはブロックされますが、これは決して発生しません。
、および/ときそれが感覚がそれを呼び出すようになるだろうか?
それは本当にこれを行うには意味がありません。この方法でこのメソッドを呼び出すべきではありません。サイドノートでは
は、.NET 4を使用していることから、私は一般的にThread.Join
を使用して避けることをお勧めします。 Task
/Task<T>
新しいクラスを使用すると、簡単に継続を付ける(または常にあなたが本当に阻止する必要がある場合Task.Wait()
を呼び出す)ことができますように、多くの点ではるかに進歩しています。現在のスレッドに参加するために他のスレッドを防ぐために、いくつかのハックでない限り、一種の疑いどのI - -
あなたのサイドノート:C#5(.NET 4.5)とC#4(.NET 4.0)を混同していますか? –
@JeppeStigNielsenません - 'Task'と'タスク
@JeppeStigNielsen参照:http://msdn.microsoft.com/en-us/library/dd321424(v=vs.100)。aspx –
いいえ、CurrentThread.Joinは()これは、スレッド例えばスレッドため待機させる、あなたのプログラムの停止運転を作ることができても意味に
を行うものではありません。
は、それはあなたが実際のコードで見たことは本当に
CurrentThread.Join()
たか、それは
CurrentThread.Join(someTimeout)
ました
後者は現在のスレッドを可能に接合点を除い
Thread.Sleep(someTimeout)
と等価ですあなたがGUI/COM環境にいる場合、メッセージをポンピングし続ける。
それは実際に観察可能なの世界に意味をなします。メインにキューリスナーがあり、メインスレッドを永続的に実行させたいとします。 while(真)を実行し、コードをループに入れるのではなく、最後の行に書くことができます。この方法では、現在のスレッドはアプリケーション内で生成された他のスレッドの親スレッドになります。 アプリのエントリーポイントと考えてください。
- 1. ReactJSのthis.method.bind(null、...)について理解していますか?
- 2. このmatplotlibコードでパスについて理解できますか?
- 3. 私はミニマックスアルゴリズムについて理解していません
- 4. マスター定理はいつ実際に適用できますか?
- 5. オブジェクトを持つゲッター/セッターを理解できない
- 6. はlistviewのcursoradapterとcheckboxについて理解できません
- 7. Valgrindについて理解しています/
- 8. backgroundWorkerの目的は何ですか? (いくつかのサンプルコードを理解できますか?)
- 9. 処理言語はいつですか?
- 10. NLP処理はいつ実行されるべきですか?
- 11. 整数のバイナリ表現について理解していますか?
- 12. 再帰関数のエラーについて理解していますか?
- 13. スケーラの理解のための怠惰はいつですか? Pythonで
- 14. instanceofの正しい決定はいつ使用していますか?私はいつもそれを理解してきたように
- 15. node.jsのいくつかの側面を理解する
- 16. Silverlightチャットサーバーはいくつのソケット接続を処理できますか?
- 17. Oracle Express Edition(XE)はいくつの接続を処理できますか?
- 18. Rのスケールについて理解してください
- 19. 何か私はrand()%iについて誤解していますか? V [0] [2]を出力する理由
- 20. 参照演算子と参照解除演算子について理解していますか?
- 21. フレックスの新しいバージョンはいつ利用できますか?
- 22. Meldについて理解する3 way merge with Git
- 23. .NETガベージコレクタはいつこのオブジェクトを解放しますか?
- 24. CSSはいつ解決/評価されますか?
- 25. プロパティはいつ解決されますか?
- 26. ストリームがCommandGetに渡された後、いつ解放できますか?
- 27. GACスコープ:ローカルアセンブリをオーバーライドする理由は何ですか?それについては何かできますか?
- 28. C#では、いつ構造体を使うべきですか?クラスはいつ使うべきですか?
- 29. サフィックスツリーについて理解するためには、どうすればよいですか?
- 30. サーバーベンチマーク:サーバーが処理できるHTTP要求の数はいくつですか?
あなたはドキュメントを読んでいますか? –
これはどこかのコードで見たことがありますか?これを呼び出すことを考えることはかなりひどいです。 –
現在のスレッドではなく、_another_スレッド 't'で' t.Join() 'を呼び出す必要があります。 [ドキュメント](http://msdn.microsoft.com/en-us/library/95hbf2ta.aspx)を参照してください。 –