13

我想用await Task.Run(DoWork), 在 ThreadPool 上做一些重复的单线程计算工作。问题是,我需要在里面使用 STA COM 对象DoWork,所以我想我不能使用 ThreadPool 因为我不能改变池线程的单元状态。

在这种情况下我如何仍然使用async/ ?await使用自定义任务调度程序创建我自己的 STA 线程池听起来像是一项过多的工作。

4

1 回答 1

16

Stephen Toub 已经写了一个存档;我建议你使用它。StaTaskScheduler

然后,您可以TaskFactory使用 that构造一个TaskSchedulerTask.Run类型上没有等价物,但您可以使用andTaskFactory轻松创建一个。StartNewUnwrap

于 2013-10-29T02:41:21.677 回答