【问题标题】:Wpf Array of Background WorkersWpf 后台工作人员数组
【发布时间】:2013-09-18 19:58:53
【问题描述】:

对不起,如果这是一个愚蠢的问题,但是可以创建一个后台工作人员数组吗?

我正在使用这篇文章中的示例: how-to-use-wpf-background-worker

我正在处理文档,并希望将每个文档放在自己的线程中。还是应该为每个文档使用相同的后台工作对象?

感谢任何见解。

【问题讨论】:

    标签: c# wpf backgroundworker


    【解决方案1】:

    可以这样做,但我觉得这是非常不可取的。任何时候您需要多个BackgroundWorker,您都应该开始考虑使用其他形式的线程。

    有关替代方案,请查看 MSDN 上的 Task ClassAsynchronous Programming with Async and Await (C# and Visual Basic) 页面。

    【讨论】:

    • 这很棒,但不幸的是我使用的是 .Net 3.5 并且需要 .Net 4 才能使用 Task 类。不过我肯定会记住这一点。我的用户遍布全国,幸运的是 Windows 默认使用 .Net3.5。谢谢!
    【解决方案2】:

    你可以创建一个

    List<BackgroundWorker> lstMyWorkers = new List<BackgroundWorker>(); 
    

    列表数组没问题。但请注意。这些线程没有必要让事情变得更快。

    运行过多的线程最终会比单个线程上的内联代码版本慢得多。

    最佳点是 6 到 10 个并发线程。 10 个线程是因为您一次绝对需要这么多线程,这非常罕见。我在模拟软件上使用它,但除了那些我真的没有看到超过 2-3 次的使用。

    我不知道如何做和不做的好文档或指南网页,但可能另一个堆垛机伙伴可能会为您提供一个不错的链接。

    【讨论】:

    • 感谢您的想法。也许我可以以 5 个单行为一组来处理它们。应该还是更快...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多