0

私がこのように何かをするなら:

new Thread(DoWork).Start();

void DoWork(){new Thread(DoMoreWork).Start();}

DoWorkを実行する最初のスレッドを中止すると、DoMoreWorkも中止されますか?そうでない場合、どうすれば秒スレッド(DoMoreWork)を中止できますか?

ありがとう!

アップデート:

スクリプトを実行する際の問題。このために、メソッドMicrosoft.Scriptingを呼び出す新しいスレッドを開始し、スクリプトを中止できるようにしたい。スレッドを中止することはできますが、スクリプトを実行するためにcreateを実行するスレッドがわかりません。Execute()Microsot.Scripting

4

2 に答える 2

0

これはデザインが悪い…

2 番目のスレッドがハングすると、最初のスレッドも閉じず、GC がリソースをクリーンアップしないため、これを行うべきではありません。つまり、デッドロックです。

スレッドは並行して実行され、階層内では同期されません。

そこでは、.net スレッド化の優れたガイドを見つけることができます: http://www.albahari.com/threading/

于 2012-03-18T10:02:26.947 に答える
0
  1. 「親」スレッドを中止しても、「子」スレッドは停止しません。

  2. Thread.Abort の使用はお勧めできません。スレッドが正常に終了するように設計する必要があります。たとえば、この質問への回答を参照してください。

スレッドが正常に終了するように設計した場合 (たとえば、イベントを通知する場合)、両方のスレッドを強制終了することもできます。

于 2012-03-18T10:11:22.700 に答える