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