使用ブロックを終了して解放されたオブジェクトのメソッドを実行している場合、スレッドはどうなりますか?
例:スコープ付きオブジェクト上でまだスレッドが実行中のusing()ブロックを終了するC#
using (SomeObject obj = new SomeObject()) { obj.param = 10 ; Thread newThread = new Thread(() => { obj.Work(); }); newThread.Start(); } ...
obj.Work()は新しいスレッドで実行されているが、OBJは、ブロックの終了を使用した場合、通常はリリースになるだろうIDisposableをオブジェクトです。使用ブロックが終了してもスレッドが実行を継続するとどうなりますか?スレッドが完了した後にのみオブジェクトが破棄されますか?またはスレッドが壊れますか?
ありがとうございました。
スレッドの外側でusingステートメントを使用するのではなく、スレッド内に配置します。 スレッドnewThread =新しいスレッド(()=> {; obj.Work();} は= 10(SomeObjectのOBJ =新しいSomeObjectの()){ obj.param用い})。 newThread.Start(); – Relster