私は .net 4.0 のタスクとそのキャンセルを研究してきました。TPL が協力してキャンセルを正しく処理しようとしている点が気に入っています。
ただし、タスク内の呼び出しがブロックされて時間がかかる状況ではどうすればよいでしょうか? たとえば、IO/ネットワーク。
書き込みをキャンセルするのは明らかに危険です。しかし、それらは例です。
例: これをキャンセルするにはどうすればよいですか? DownloadFile
長い時間がかかることがあります。
Task.Factory.StartNew(() =>
WebClient client = new WebClient();
client.DownloadFile(url, localPath);
);