案例 1:我有一个控制台测试应用程序和库。测试应用程序对那些打算并行运行的库中的类调用异步方法。示例代码
for (int i = 0; i < 100; i++)
{
var myTask = RetrieveRecordSet<TestClass3>();
}
这在控制台应用程序中按预期工作,这意味着所有 100 个任务同时排队,并且这些任务在后台并行执行,其控制台输出证明了这一点。
案例 2:相同的代码,只是在 WPF 应用程序而不是控制台应用程序中。现在由于某种原因,任务按顺序运行。
案例 3:我还尝试了对 WPF 应用程序进行以下修改,但无济于事:
for (int i = 0; i < 100; i++)
{
var myTask = Task.Factory.StartNew(() => RetrieveRecordSet<TestClass3>());
}
案例 4:然后我尝试了以下操作,但它阻止了 UI 并且仍然是连续的
Parallel.For(0, 100, a => RetrieveRecordSet<TestClass3>());
有没有办法在 WPF 应用程序中获得与案例 1 相同的非阻塞并行行为?