2012-02-14 3 views
0
private void Test(string param) 
    { 
     Thread.Sleep(OneDay); 
     Submit(param); 

    } 

これはコンソールアプリケーションです。スレッドが長時間スリープしても、paramがその値を失う可能性はありますか?スレッドが長時間スリープしているときに変数が値を失う

+3

なぜあなたはそれを考えますか? –

+3

答えが「いいえ」であるにもかかわらず、コンピュータを再起動したり、プロセスが他の人に殺されたりして、システムリソースを1日消費するなどの心配が必要な場合は、1日中スリープ状態になるのではなく、 – Servy

+2

コンピュータの高度が高い場合、宇宙線がスタックを破損する可能性があります。 –

答えて

2

スレッドが長時間スリープした場合、paramが値を失う可能性はありますか?

paramがスタックにあり、実行が再開するとスタックからポップバックされます。

+0

また、paramは不変です。変更可能な参照型の "内容"が変更される可能性は考えられますが、それは参照型の値とその "内容" –

1

いいえ。各スレッドには独自のスタックがあります。スレッドがスリープから復帰すると、スタックからの変数が使用されます。

関連する問題