次のコードでサードパーティのタスクを実行しています。
var ts = new CancellationTokenSource();
var ct = ts.Token;
var node = Task<IResponseAdapter>.Factory.StartNew(() =>
{
return NewRequest(n.RequestClass, n.MinCommission, n.MaxCommission).Submit();
}, ct);
ご覧のとおり、メソッド呼び出しはタスク内の唯一のものであり、タスク内にある全体的な理由は、タイムアウトした場合にキャンセルできるようにするためです。多数のサード パーティ メソッドが順次実行されるため、動作が正しくないジョブや応答しないジョブを監視し、それらを終了して、次のジョブが実行されるようにすることが重要です。
私のコードの他の場所に
var completed = task.Wait(timeoutValue);
if(!completed) tokensource.Cancel();
ただし、これは実際にタスクをキャンセルするのではなく、タスクにアクセスする方法を提供するだけだと思います。
では、サードパーティの Web サービス メソッドの実行を停止するにはどうすればよいでしょうか?