使TaskScheduler同步并在主线程中运行

Mat*_*ore 1 c# wpf asynchronous taskfactory async-await

我正在寻找一种方法来创建在主线程中同步运行的 TaskScheduler,以允许将 WPF 应用程序配置为单线程以进行调试。

任何想法?

现在,我正在使用 MSDN 上的示例LimitedTaskScheduler,它允许指定并发级别(使用多少个线程),并使用此扩展在应用程序启动之前设置静态 TaskFactory:

void SetOnTaskFactory(TaskFactory taskFactory)
{
    const BindingFlag = BindingFlags.Static | BindingFlags.NonPublic
    var field = typeof(Task).GetField("s_factory", BindingFlag);
    field.SetValue(null, taskFactory);
}
Run Code Online (Sandbox Code Playgroud)

jur*_*ure 5

出于测试目的,您可以使用ParallelExtensionsExtrasCurrentThreadTaskScheduler库。基本上它很简单,在当前线程上执行所有任务。TaskScheduler