0

オブジェクトが GC によって収集された後、バックグラウンドで実行されているスレッドに何が起こるか知りたいですか? 彼らは自殺しますか、それともゾンビプロセスにしますか?

 private Thread currentDateTimer;
 private DateTime ActualDateTime;

 if (this.currentDateTimer == null)
        {
            this.currentDateTimer = new Thread(() =>
            {
                while (true)
                {
                    this.ActualDateTime = DateTime.Now;
                    Thread.Sleep(60 * 1000 - (DateTime.Now.Second * 1000 + DateTime.Now.Millisecond));
                }
            }) { IsBackground = true };
            this.currentDateTimer.Start();
        }

スレッドはいつ停止するかを知りません。

オブジェクト インスタンスが収集されると、このスレッドは強制終了されますか? スレッドが this.ActualDateTime を必要とするため、GC はこのオブジェクトを収集しますか?

誰かが同じ問題を抱えていることを願っています。

4

1 に答える 1

4

スレッド デリゲートが をキャプチャしたthisため、オブジェクトは収集されません。

で起動しIsBackground = trueたため、アプリケーションのシャットダウン時に自動的に終了します。

于 2013-07-30T09:23:40.207 に答える