当前位置: 首页 > news >正文

牧童蝉网站建设/处理器优化软件

牧童蝉网站建设,处理器优化软件,网络营销策划流程,京东网站建设访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。 解决办法 1、把CheckFor…

访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。

解决办法

1、把CheckForIllegalCrossThreadCalls设置为false

在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,可以在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为 false

public Form1()
{InitializeComponent();CheckForIllegalCrossThreadCalls = false;
}

也可以针对某一控件进行设置,例如:

TextBox.CheckForIllegalCrossThreadCalls = false;

2、利用委托

 delegate void SetTextCallBack(string text);private void SetText(string text){if (this.txt_a.InvokeRequired){SetTextCallBack stcb = new SetTextCallBack(SetText);this.Invoke(stcb , new object[] { text});}else{this.txt_a.Text = text;}}private void LoadData(){SetText("测试");}//窗体加载时,用线程加载数据private void Frm_ImportManager_Load(object sender, EventArgs e){ThreadStart ts = new ThreadStart(LoadData);Thread thread = new Thread(ts);thread.Name = "LoadData";thread.Start();}    

3、使用 BackgroundWorker控件

在应用程序中实现多线程的首选方式是使用 BackgroundWorker 组件。BackgroundWorker 组件使用事件驱动模型实现多线程。辅助线程运行 DoWork 事件处理程序,创建控件的线程运行ProgressChanged 和 RunWorkerCompleted 事件处理程序。注意不要从 DoWork 事件处理程序调用您的任何控件。

下面的代码示例不异步执行任何工作,因此没有 DoWork 事件处理程序的实现。TextBox 控件的Text 属性在 RunWorkerCompleted 事件处理程序中直接设置。

// This event handler starts the form's // BackgroundWorker by calling RunWorkerAsync.//// The Text property of the TextBox control is set// when the BackgroundWorker raises the RunWorkerCompleted// event.private void setTextBackgroundWorkerBtn_Click(object sender, EventArgs e){this.backgroundWorker1.RunWorkerAsync();}// This event handler sets the Text property of the TextBox// control. It is called on the thread that created the // TextBox control, so the call is thread-safe.//// BackgroundWorker is the preferred way to perform asynchronous// operations.private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e){this.textBox1.Text = "This text was set safely by BackgroundWorker.";}  

 

http://www.jmfq.cn/news/5056939.html

相关文章:

  • 兼职网站平台有哪些/百度推广做二级域名
  • 雅茂道网站建设/网络营销课程
  • 开发客户的70个渠道/优化大师兑换码
  • 便宜的做网站/哈尔滨seo优化公司
  • 智慧团建手机版登录注册入口/seo技术 快速网站排名
  • 网站改造设计方案/全国唯一一个没有疫情的城市
  • 外贸b2b网站大全排名/百度快照推广排名
  • 网站系统优点/外贸独立站怎么建站
  • 做网站订金是多少钱/关键词百度指数查询
  • 网站后台登录界面/网站代搭建维护
  • 免费网站建站排行榜/上海网络推广服务
  • 网站建设教程赚找湖南岚鸿认 可/百度网址安全检测
  • 时时彩网站建设开发/营销培训班
  • 宁波网站建设制作公司排名/什么是整合营销并举例说明
  • 建筑设计专业是干什么的/seo薪酬如何
  • 做毕业证教育网站/百度深圳总部
  • 做网站的模版/怎么找推广渠道
  • 做网站每年交服务费/电子商务网站建设方案
  • 如何让网站快速被收录/怎么样拓展客户资源
  • 淮北网站建设制作/seo点击器
  • wordpress主题安装/百度上如何做优化网站
  • springboot社交网站开发/代运营公司可靠吗
  • 如何做免费电影网站/广告公司推广文案
  • 网站的开发环境是什么/seo点击排名工具有用吗
  • 空滤网站怎么做/抖音关键词排名优化
  • 福建微网站建设公司/bt兔子磁力天堂
  • 网站建设必须要服务器么/2022年seo还值得做吗
  • 宁波哪家公司做网站好/外贸怎么建立自己的网站
  • 大做网站/企业网站推广方案
  • 北海住房和城乡建设部网站/百度应用