BackgroundWorker和之间有什么区别Thread?在我的应用程序中,我使用的是一个定期与数据库通信的消息传递系统.我想在这里使用哪一个:BackgroundWorker或者Thread?
我正在用C#编写一个下载程序并停止了以下问题:我应该使用什么样的方法来并行化我的下载并更新我的GUI?
在我的第一次尝试中,我使用了4个线程,并且在每个线程完成时我开始了另一个:主要问题是我的cpu在每个新线程启动时都是100%.
谷歌搜索,我发现BackgroundWorker和ThreadPool的存在:声明我想用我正在下载的每个链接的进度更新我的GUI,什么是最好的解决方案?
1)创建4个不同的BackgroundWorker,附加到每个ProgressChanged事件,委托我的GUI中的函数来更新进度?
2)使用ThreadPool并将最大和最小线程数设置为相同的值?
如果我选择#2,当队列中没有更多线程时,是否会停止4个工作线程?它暂停了吗?由于我必须下载不同的链接列表(每个链接20个链接)并在完成一个链接时从一个链接移动到另一个链接,ThreadPool是否在每个列表之间启动和停止线程?
如果我想在live上更改工作线程的数量并决定使用ThreadPool,从10个线程更改为6,它是否会抛出异常并停止4个随机线程?
这是让我头疼的唯一部分.我提前感谢你们每个人的答案.
c# multithreading backgroundworker download-manager threadpool
我想知道什么用于需要很多性能的任务.
Backgroundworker,Thread还是ThreadPool?
到目前为止,我一直在使用Threads,但我需要提高应用程序的速度.