繁体   English   中英

如何 ThreadStart 标记为 async 的方法?

[英]How do I ThreadStart a method that is labelled async?

我想在一个单独的线程上运行一个处理循环:

_processingThread = new Thread(new ThreadStart(DoWork)));

但是 DoWork 需要异步:

private async Task QueueProcessorDoWork()
{
   while (true)
   {
     await something();
   }
}

我怎样才能将两者连接在一起? 当我添加async Task ,它与 ThreadStart 的参数不匹配。

我认为可以使用设置线程async Task的方法,但我不确定这是否有帮助。

这里最好的解决方案是什么? 我需要我的线程开始运行然后返回。

这将使指定的工作排队以在 ThreadPool 上运行。

_ = Task.Run(() => QueueProcessorDoWork());

QueueProcessorDoWork 现在必须完全自给自足并照顾好自己。 任何抛出的异常都不会被捕获。 调用线程无法知道它是否成功。

_ =只是停止编译器警告不等待调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM