- 153 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:49:02.21 ID:E/TV++i+.net]
- Taskのキャンセルがうまくいかないのですがどうすればうまくいくでしょうか?
一回目はキャンセルできても2回目はなぜかデッドロックしてしまいます;; 以下にソースを張ります。 CancellationTokenSource tokenSource = new CancellationTokenSource(); private void button1_Click(object sender, EventArgs e){ var task1 = Task.Factory.StartNew(() =>{ var task2 = Task.Factory.StartNew(() =>{ tokenSource.Token.ThrowIfCancellationRequested(); for (int i = 0; i <=300000000; i++){ if (tokenSource.IsCancellationRequested){ return 0; } } return 0; }); if (task2.Result == 0){ task2.Dispose(); } }, tokenSource.Token); }
|

|