11

Thread.CurrentThread.Join() を呼び出すと、どのような影響がありますか?また、それを呼び出すことが理にかなっている場合/いつですか?

4

5 に答える 5

16

本当だったのか

CurrentThread.Join()

あなたが実際のコードで見たのは - 他のスレッドが現在のスレッドに参加するのを防ぐためのハックでない限り、私はちょっと疑っています - それともそうでしたか

CurrentThread.Join(someTimeout)

後者は

Thread.Sleep(someTimeout)

ただし、現在のスレッドに参加すると、GUI/COM の状況にある場合にメッセージ ポンピングを続行できます。

于 2013-08-02T06:08:04.550 に答える
14

Thread.CurrentThread.Join() を呼び出す効果は何ですか

現在のスレッドの実行をブロックし、事実上デッドロックします。現在のスレッドが終了するまで現在のスレッドがブロックされますが、これは決して起こりません。

、そしてそれを呼び出すのが理にかなっている場合/いつですか?

これを行うのは本当に意味がありません。この方法でこのメソッドを呼び出さないでください。


Thread.Joinちなみに、.NET 4 を使用しているため、一般的には使用しないことをお勧めします。新しいTask/クラスを使用すると、継続を簡単にアタッチできる (または、本当にブロックする必要がある場合はTask<T>常に呼び出すことができる) ため、多くの点ではるかに優れています。Task.Wait()

于 2013-06-12T18:25:46.717 に答える
2

いいえ、CurrentThread.Join() は意味がありません。
これにより、プログラムの実行が停止し、たとえばスレッドAがスレッドAを待機する可能性があります。

于 2013-06-12T18:25:37.917 に答える