首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高响应多线程WPF应用程序

高响应多线程WPF应用程序
EN

Stack Overflow用户
提问于 2013-04-08 20:44:40
回答 1查看 740关注 0票数 0

我正在开发WPF应用程序,通过串口与16个设备通信。通信过程包括读写命令。配置设备大约需要2分钟。我的UI应该在配置过程中响应,它应该在读命令执行后显示读取,并在写命令执行后显示命令状态。我使用backgroundworker处理一个设备。一切都很好。现在我需要同时运行所有16个设备。我该怎么做呢?由于只有一个UI线程可用,2-3个设备的UI挂起。请为此建议最好的可能方法。

EN

回答 1

Stack Overflow用户

发布于 2013-04-08 22:17:32

您必须为每个设备配备后台工作人员,您可以通过以下方式报告每个设备的进度:

代码语言:javascript
复制
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.ProgressChanged +=backgroundWorker1_ProgressChanged;

   private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
     {
       ....
       backgroundWorker1.ReportProgress(i);
       ....
     }

  private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
       progressBar1.Value = e.ProgressPercentage;
    }

您还可以使用以下命令从任何线程与UI线程进行交互:

代码语言:javascript
复制
Application.Current.Dispatcher.BeginInvoke
( DispatcherPriority.Normal,new Action(() => { ... }));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15879375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档