首页 新闻 会员 周边

.net Task 中循环 1w 次 如何 让他执行1秒后销毁 不执行

0
悬赏园豆:10 [已关闭问题] 关闭于 2021-03-10 15:45

var task = Task.Run(() =>
{
for (var i = 0; i < 100000; i++)
{
Console.WriteLine(i);
}

        });
丿如何是好的主页 丿如何是好 | 菜鸟二级 | 园豆:226
提问于:2021-03-10 14:51
< >
分享
所有回答(2)
0

static CancellationTokenSource source = new CancellationTokenSource();
var task = Task.Run(() =>
{
for (var i = 0; i < 100000; i++)
{
Console.WriteLine(i);
Thread.Sleep(1000);
}
},source.Token);

OneZone | 园豆:188 (初学一级) | 2021-04-15 17:32
0
CancellationTokenSource source = new CancellationTokenSource();
            //注册一个线程取消后执行的逻辑
            source.Token.Register(() =>
            {
                //这里执行线程被取消后的业务逻辑.
                Console.WriteLine("-------------我是线程被取消后的业务逻辑---------------------");
            }); 
            var t = Task.Run(() =>
            {
                for (var i = 0; i < 100000; i++)
                {
                    if (source.IsCancellationRequested)
                    {
                        return;
                    }
                    Thread.Sleep(100);
                    Console.WriteLine("当前thread={0} 正在运行 {1}", Thread.CurrentThread.ManagedThreadId,i);
                  
                } 
            }, source.Token);
            

            Thread.Sleep(1000);
            source.Cancel(); 
            Console.Read();
Tom.汤 | 园豆:3028 (老鸟四级) | 2021-04-26 13:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册