CancellationToken和Task的问题
var tokenSource = new CancellationTokenSource();
var token = tokenSource.Token;
Task.Run(() =>
{
while (true)
{
token.ThrowIfCancellationRequested();
Console.WriteLine($"[1] {DateTime.Now:mm:ss.fff}");
Thread.Sleep(1000);
}
}, token);
Task.Run(() =>
{
Thread.Sleep(5000);
Console.WriteLine($"[2] {DateTime.Now:mm:ss.fff}");
tokenSource.Cancel();
});
在Task.Run方法中,第二个参数CancellationToken加不加效果都一样。
要取消还是得有一句"token.ThrowIfCancellationRequested();"。
也就是
Task.Run(action)
和
Task.Run(action,token)
有什么区别?
想知道Task.Run的第二个参数的作用是什么?通常在怎么场景下使用?
...全文
相关推荐
dotnet 警惕 Task 的 ContinueWith 带上 OnlyOnFaulted 参数抛出取消异常.rar
开发案列优质学习资料资源工具与案列应用场景开发文档教程资料
.net让线程支持超时的方法实例和线程在执行结束后销毁的方法
两个问题:.net如何让线程支持超时?.net如何让线程在执行结束后销毁?本文就解决这二个问题
WinFrom的加载等待框(异步)
WinFrom的记载等待框,里面Form1是一个小示例,使用很简单。是通过异步实现的。很实用
Task C# 异步编程模式,实例分享
C#异步Task编程模型实战技巧,异步Task实战实例分享
C# TPL 同步实例代码
几个C# TPL 同步的实例代码,来自MSDN和C#本质论中,用于参考。



