我们可以在Task.Run中有一个while循环逻辑吗?

问题描述:

我想要做的事,如:我们可以在Task.Run中有一个while循环逻辑吗?

Task.Run(while(true) 
{ 
doSomething() 
} 

是否有这样做的正确方法?

+0

恩这不会是一个真正的线程更好吗?你可以做,但通过一个lambda。 –

+1

当然,为什么不呢?但是,可能有更好的方法来做你想做的事情。如果你解释为什么你想要这个,也许SO可以提供更好的解决方案 – stackErr

+0

我在OpenAsync里面这样做,产生另一个线程将有助于不阻止OpenAsync。我只是不确定如何使用while(true)格式化lambda表达式。 –

Task.Run(() => { 
    while (true) { 
     doSomething(); 
    }; 
}); 

您可能需要添加其他选项。

  1. 任务创建选项应指示这是一个长时间运行的线程。

  2. 您可能希望包含任务取消标记以允许此线程终止。