【发布时间】:2015-08-27 00:12:19
【问题描述】:
是否有关于在 WPF Prism 6 应用程序中实现后台线程的推荐方法或指南?我需要对数百台远程计算机进行几次 WMI 调用,并向 GUI 显示状态和 WMI 数据。我已经按照这个Prism 6 video 来得到几乎所有的东西,除了线程。
【问题讨论】:
标签: c# wpf multithreading mvvm prism
是否有关于在 WPF Prism 6 应用程序中实现后台线程的推荐方法或指南?我需要对数百台远程计算机进行几次 WMI 调用,并向 GUI 显示状态和 WMI 数据。我已经按照这个Prism 6 video 来得到几乎所有的东西,除了线程。
【问题讨论】:
标签: c# wpf multithreading mvvm prism
我不确定这是 Prism 特有的,但要启动数百个异步调用,我会使用任务:
void DoWMICall(string computer)
{
Console.WriteLine("Calling {0}", computer);
Task.Delay(1000).Wait();
Console.WriteLine("Computer {0} is OK", computer);
}
void CallComputers()
{
var tasks = new Task[100];
var computerNames = new string[100];
for (int i = 0; i < 100; ++i)
{
computerNames[i] = Guid.NewGuid().ToString();
}
for (int i = 0; i < 100; ++i)
{
var index = i;
tasks[index] = Task.Run(() => DoWMICall(computerNames[index]));
}
// This call blocks until all tasks are finished.
Task.WaitAll(tasks);
}
【讨论】: