c# wpf 多线程球并发执行

zhujunshu0442 2016-11-11 10:32:03
因为程序加载慢,写了多线程,但是效率没有提高,小白,求指教
代码如下:
Thread T_ImageFocusDeBlur;
Thread T_ImageFocusDeBlur2;
Thread T_ImageFocusDeBlur3;
Thread T_ImageFocusDeBlur4;
public void ThreadImageFocusDeBlurStart()
{
T_ImageFocusDeBlur = new Thread(new ThreadStart(ProgressBarShow));
T_ImageFocusDeBlur2 = new Thread(new ThreadStart(ProgressBarShow2));
T_ImageFocusDeBlur3 = new Thread(new ThreadStart(ProgressBarShow3));
T_ImageFocusDeBlur4 = new Thread(new ThreadStart(ProgressBarShow4));
T_ImageFocusDeBlur.Start();
T_ImageFocusDeBlur2.Start();
T_ImageFocusDeBlur3.Start();
T_ImageFocusDeBlur4.Start();

}
public void ProgressBarShow()
{
#region --去散交模糊1--
try
{
if (img != null)
{
this.Dispatcher.Invoke(() =>
{
m_win.ImageBricstAdjustNumber += 1;
string srcPath = imgPath;
//MessageBox.Show(srcPath);
string dstPath = "d:\\1\\" + m_win.ImageBricstAdjustNumber + ".bmp";
ImageProcessInterface.sh_ImageFocusDeBlur(srcPath, dstPath, 1, 1, 20);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(dstPath, UriKind.RelativeOrAbsolute);
bi.EndInit();

Image_1.Source = bi;
GroupBox_1.Header = "去散交模糊1";
//pw.Add();
});
}
}
catch (Exception ex)
{
MessageBox.Show("错误" + ex, "提示");
}
#endregion

}
...全文
298 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujunshu0442 2016-11-11
  • 打赏
  • 举报
回复
引用 3 楼 zhujunshu0442 的回复:
[quote=引用 2 楼 sp1234 的回复:] 你启动了一个线程(线程要占用巨大的系统堆栈和CPU时间资源),仅仅为了执行一条 Invoke 语句而阻塞线程么?那么这个线程就是毫无意义的,是滥用线程。
大神,那么我该怎样做呢? [/quote] 要同时更新9个画面,加上opencv的算法有点吃cpu
zhujunshu0442 2016-11-11
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
你启动了一个线程(线程要占用巨大的系统堆栈和CPU时间资源),仅仅为了执行一条 Invoke 语句而阻塞线程么?那么这个线程就是毫无意义的,是滥用线程。
大神,那么我该怎样做呢?
  • 打赏
  • 举报
回复
你启动了一个线程(线程要占用巨大的系统堆栈和CPU时间资源),仅仅为了执行一条 Invoke 语句而阻塞线程么?那么这个线程就是毫无意义的,是滥用线程。
zhujunshu0442 2016-11-11
  • 打赏
  • 举报
回复
在线等,谢谢
  • 打赏
  • 举报
回复
原理、机制都给你说清楚了,设计的结果需要你自己基于悟性来重构。至少你应该知道什么时候该放弃。
zhujunshu0442 2016-11-11
  • 打赏
  • 举报
回复
引用 5 楼 xinweilee 的回复:
线程函数中把非ui操作放到invoke之外执行,另外invoke换成begininvoke
处理速度还是很慢
xinweilee 2016-11-11
  • 打赏
  • 举报
回复
线程函数中把非ui操作放到invoke之外执行,另外invoke换成begininvoke

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧