【问题标题】:Adding background threads to a WPF Prism MVVM Application将后台线程添加到 WPF Prism MVVM 应用程序
【发布时间】:2015-08-27 00:12:19
【问题描述】:

是否有关于在 WPF Prism 6 应用程序中实现后台线程的推荐方法或指南?我需要对数百台远程计算机进行几次 WMI 调用,并向 GUI 显示状态和 WMI 数据。我已经按照这个Prism 6 video 来得到几乎所有的东西,除了线程。

【问题讨论】:

    标签: c# wpf multithreading mvvm prism


    【解决方案1】:

    我不确定这是 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      相关资源
      最近更新 更多