Worker线程不能修改UI线程的状态(比如文本框里面的内容)。解决的办法是写一个用来更新文本框内容的函数,然后在Worker线程里面通过BeginInvoke来利用delegate调用这个函数更新文本框。具体代码如下:
  void ThreadEntry(){int i = 1;string name = Thread.CurrentThread.Name;while (i > 0){Thread.Sleep(1000);dsync.WaitOne();              //WaitOne方法是阻塞方法,如果string msg = string.Format("The current index is {0}", i);this.BeginInvoke(new ShowDelegate(ShowMsgBox), msg);i++;}}

调用方法: private void OK_Click(object sender, EventArgs e){Thread worker = new Thread(ThreadEntry);worker.Start();}更新方法:private void ShowMsgBox(string tmp){logOutput.Text += tmp + "\r\n";}

BTW,如果需要控制工作线程的执行,阻塞和继续执行,可以使用System.Threading.ManualResetEvent类的 WaitOne()、Set()、Reset()方法。


转载于:https://www.cnblogs.com/haizzh/p/6952246.html

Clinet/Server在工作线程中刷新页面数据的方法相关推荐

  1. access 套用表格_在Excel 2013工作表中导入Access数据的方法

    Excel与Access同为数据处理软件,它们在功能上各有侧重.Access精于数据管理和分类,而Excel则长于数据统计和计算.这两个软件处理过的数据是可以互相调用的,综合应用这两个软件,取长补短, ...

  2. 【Based Android】Android Sensor感应器介绍(二)线程中刷新UI 创建一个android测力计...

    上一篇文章http://www.cnblogs.com/octobershiner/archive/2011/11/06/2237880.html介绍了sensor的基本知识以及一个使用其中加速度感应 ...

  3. EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面

    EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面 参考文章: (1)EXC_BAD_ACCESS(code=2,address=0xcc ...

  4. Win32:MessageBox、AfxMessageBox、及工作线程中的对话框

    首先我们要清晰一点,同样是线程,但创建线程方式不同,由于创建线程的内部实现不同,也就意味着对后期影响是不一样的. 三种创建线程的方式 C语言的:__beginthread()/__beginthrea ...

  5. javascript(js)自动刷新页面的实现方法总结

    自动刷新页面的实现方法总结: 1) <meta http-equiv="refresh"content="10;url=跳转的页面"> 10表示间隔 ...

  6. 关于IOS系统,H5页面操作history.go(n)回退页面时不会刷新页面数据的问题

    关于IOS系统 H5页面操作history.go(n)回退页面时不会刷新页面数据的问题 在我们从操作h5页面时,离开当前页面后,在使用返回键或者history.go(n)再次回到页面,有时是需要刷新当 ...

  7. 微信小程序 通过wx.redirectTo,实现单页面刷新效果 & 下拉刷新页面数据效果

    微信小程序 通过wx.redirectTo,实现单页面刷新效果 & 下拉刷新页面数据效果 一: 使用 wx.redirectTo(),实现页面刷新数据效果 API说明: 关闭当前页面,跳转到应 ...

  8. 清空SQL Server数据库中所有表数据的方法(转)

    清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...

  9. ASP.NET刷新页面的六种方法

    ASP.NET刷新页面的六种方法 第一: private void Button1_Click( object sender, System.EventArgs e )   {     Respons ...

最新文章

  1. android 带记忆功能的播放器源码,Android实现阅读进度记忆功能
  2. 后台报错 新导入的项目报错
  3. UA MATH567 高维统计I 概率不等式5 推广Hoeffding不等式与Khintchine不等式
  4. go get安装第三方包的前提条件和步骤
  5. 基于socket网络编程技术实现TCP和UDP的流程详解及实例
  6. Ant Design Pro+Electron+electron-builder实现React应用脱离浏览器,桌面安装运行
  7. Ospf在广播网络中建立邻居关系的详细过程
  8. SVN版本管理trunk及branch相关merge操作
  9. 三种model 在lfw 上的精度
  10. Java 稳步成长、Kotlin 崛起、Go 保持独特风格,2020 年各大编程语言发展趋势一览...
  11. excel制作录入和查询系统_叮咚!您有一份Excel人员信息查询系统,请您查收~
  12. 2.C++深入理解 面向对象部分1
  13. java 报表模版 打印_Java报表工具技巧--如何使用Style Report制作以及打印标签
  14. rust自创服务器_萌新教大家搭建Rust服务器(局域网和公网)
  15. 第五章-对单词进行分类和标记
  16. SharePoint 网站的导入导出
  17. C语言简单实现世界协调时UTC与北京时间BJT转换
  18. 插件目标[置顶] Maven自定义绑定
  19. Shader混合模式--正片叠底、滤色、叠加
  20. Apache httpd服务器下载及安装

热门文章

  1. 解决Axure RP Extension for Chrome 安装问题
  2. PPT转成html视频无法播放,绝对实用 将PPT文档转换成Flash/HTML
  3. 客户端Git代码的下载与提交
  4. Python模块之subprocess用法实例详解
  5. 对象关系映射(ORM)介绍理解
  6. Northwind 和 pubs 示例数据库下载
  7. 镇魂歌~Qt5容器类_1
  8. 真实地址查询——DNS
  9. memory内存管理系列函数咋不能用了
  10. 通过List里面对象的属性值来去重List,并把相同属性的其他属性相加