我将StaTaskScheduler线程设置为1,我希望每5秒可以得到一个Debug输出,但是最后我得到10个具有相同日期的
_kTabBarHeight
我想念什么?使用STA的原因是,以后它将用于需要STA的图标提取,但是此测试是要检查它是否按顺序完成。
答案 0 :(得分:-2)
您必须使用MyStaThred.QueueTask
而不是Task.Factory.Startnew
来开始任务:
private void Test() {
for (int i = 0; i < 10; i++)
MyStaThread.QueueTask(new Task(() =>
{
Task.Delay(5000); //temp for long operation
Debug.WriteLine(DateTime.Now);
}));
}
public static StaTaskScheduler MyStaThread =
new StaTaskScheduler(numberOfThreads: 1);
Task.Factory.Startnew
使用.Net Framework内部线程池,并且不考虑StaTaskScheduler
。