我有一个应用程序,它使用WPF作为其GUI,但是,在命令启动非常繁重的处理负载。 我注意到当引擎(繁重处理)运行时以及使用“应用程序时间线”时,我的GUI非常缓慢。在VS2015中的工具,我注意到我的一些引擎代码正在UI线程上运行。
使用以下行启动引擎,如果我理解LongRunning
标志,则创建一个新线程并在该线程上运行给定的函数。
rootTask = Task.Factory.StartNew(DoWork, TaskCreationOptions.LongRunning);
上面引用的DoWork
方法重复使用Parallel.For
排队数百个任务。
调度员线程是否有可能帮助解决问题?通过从TaskScheduler队列运行任务?如果是这样,是否可以防止这种情况使GUI保持响应(尽管不利于后台任务)?
答案 0 :(得分:0)
调度员线程是否有可能帮助解决问题?通过从TaskScheduler队列运行任务?
不,据我所知,这是不可能的。如果来自Task
的某些代码确实在调度程序线程上执行,那么这意味着任务必须明确地在那里安排它。