多线程调用同一个函数时,进度条怎么样以最慢运行的线程进行? 我不赞同楼主以最慢的作为基准的想法。比如有100个文件,10根线程同时执行,进度条从0到100,每根线程每导完一个文件,去把进度条当前值+1,全部传输完整好100点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用到一个笨办法,就是调用的函数虽然一样,我把不同线程调用的函数名称区别开来,相当于是把相同的函数命名不同几个,每个线程分别调用一个函数,就可以区分线程调用的函数了 尝试下改变思路,不要一开始就把任务分配好,而是线程动态去取任务哪个线程执行的快,就可以多执行几个任务,执行慢的少执行几个避免因为其中一个线程慢,影响所有任务的进度.先把任务放队列里,线程开始任务之前去取,取出一个,就在队列里删除,然后开始执行耗时的代码对队列的操作加锁 线程数量不是和cpu有关吗你2核心的cpu开那么多线程不知道效率怎么样int 总进度=100;int 当前进度=0;线程调用方法{...当前进度++;} 开多少线程合适得看线程到底在干什么.如果是执行非常快的逻辑,开多了反而影响效率.如果10秒里有9.999秒都在等通信的另一方响应,开100个线程也是都在等着. C# zip 压缩及解压缩 ComBox的DisplayMember显示成员无效,显示的为ValueMember成员??? 求教键盘事件 c# 怎样识别一串字符的编码格式? 输入问题? HitTestInfo类中捕捉行号的问题。。 freedb 技术 如何在邮件中显示树状可以折叠的表格, 并发送? c# 如何讀取xml 中指定記錄?? WinForms问题 C# socket编程 出现 System.OutOfMemoryException 错误 【C#菜鸟求助大神】初学C#,有些疑问,望大神解疑!
哪个线程执行的快,就可以多执行几个任务,执行慢的少执行几个
避免因为其中一个线程慢,影响所有任务的进度.先把任务放队列里,线程开始任务之前去取,取出一个,就在队列里删除,然后开始执行耗时的代码
对队列的操作加锁
int 当前进度=0;线程调用方法{
...
当前进度++;
}
如果是执行非常快的逻辑,开多了反而影响效率.
如果10秒里有9.999秒都在等通信的另一方响应,开100个线程也是都在等着.