2
我需要取消使用從dll(本示例中爲MethodFromDll())的長時間運行方法的任務 在哪裏可以調用cancellationToken.ThrowIfCancellationRequested()方法來取消此任務?取消任務
tokenSource = new CancellationTokenSource();
CancellationToken cancellationToken = tokenSource.Token;
t = Task.Factory.StartNew(() => {
try {
...some code
// I need to cancel this task manually if method not answer
// or there is no wish to wait
MethodFromDll();
...some code
} catch {
...some code
}
}, cancellationToken);
可以在例如http://stackoverflow.com/a/11191070/43846 – stuartd
該添加哪些使用該令牌超時任務,如是TWAIN庫的Scan()方法,我不知道5seс或5分鐘它運行..( – SetSun
因此,將它設置爲足夠長的值以進行任何合理的掃描,並且如果用戶在此之前表明他們希望取消,這就是你調用'tokenSource.Cancel'方法的地方。超時任務將會看到取消被請求,並且'IsCancelled'被設置爲true 。 – stuartd