0

我有一个使用 WPF 作为其 GUI 的应用程序,但是,在命令启动时,处理负载非常重。我注意到当引擎(繁重的处理)运行时我的 GUI 相当缓慢,并且在 VS2015 中使用“应用程序时间线”工具时,我注意到我的一些引擎代码正在 UI 线程上运行。

引擎从以下行开始,如果我理解该LongRunning标志,则创建一个新线程并在该线程上运行给定的函数。

        rootTask = Task.Factory.StartNew(DoWork, TaskCreationOptions.LongRunning);

上面引用的DoWork方法重复用于Parallel.For排队数百个任务。

调度程序线程是否有可能通过运行 TaskScheduler 队列中的任务来“提供帮助”?如果是这样,是否有可能阻止这种情况以保持 GUI 响应(尽管会损害后台任务)?

4

1 回答 1

0

调度程序线程是否有可能通过运行 TaskScheduler 队列中的任务来“提供帮助”?

不,据我所知,这是不可能的。如果来自 的某些代码Task真正在调度程序线程上执行,那么这意味着任务必须在那里显式地安排它。

于 2016-07-06T13:58:28.890 回答