双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

CancellationToken和Task的问题

好几只小萝莉 好几只小萝莉 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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的第二个参数的作用是什么?通常在怎么场景下使用?


...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
好几只小萝莉
C# 111,129 成员 642,540 内容