线程间操作无效

方法一:

成都地区优秀IDC服务器托管提供商(创新互联).为客户提供专业的成都移动机房,四川各地服务器托管,成都移动机房、多线服务器托管.托管咨询专线:18980820575

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

方法二:

       using System;
 using System.Threading;
 using System.Windows.Forms;
 
 namespace TestingUIThread
 {
     public partial class Form1 : Form
     {
         Thread thread = null;
 
         public Form1()
         {
            
             InitializeComponent();
         }
 
         private void btnEnable_Click(object sender, EventArgs e)
         {
             thread = new Thread(new ParameterizedThreadStart(EnableButton));
             thread.Start(null);
         }
 
         private void EnableButton(object o)
         {
             EnableButton();
         }
 
         private delegate void EnableButtonCallBack();
 
         private void EnableButton()
         {
             if (this.btnTest.InvokeRequired)
             {
                 this.Invoke(new EnableButtonCallBack(EnableButton));
             }
             else
             {
                 btnTest.Enabled = true;
                 btnTest.Text = "Enabled";
             }
         }
     }
 }

方法三: 通过ISynchronizeInvoke和MethodInvoker.

using System;
 using System.ComponentModel;
 using System.Threading;
 using System.Windows.Forms;
 
 namespace TestingUIThread
 {
     public partial class Form1 : Form
     {
         Thread thread = null;
 
         public Form1()
         {
             InitializeComponent();
         }
 
         private void btnEnable_Click(object sender, EventArgs e)
         {
             thread = new Thread(new ParameterizedThreadStart(MyEnableButton));
             thread.Start(null);
         }
 
         private void MyEnableButton(object sender)
         {
             ISynchronizeInvoke synchronizer = this;
 
             if (synchronizer.InvokeRequired)
             {
                 MethodInvoker minvoker = new MethodInvoker(this.EnableButton);
                 synchronizer.Invoke(minvoker, null);
             }
             else
             {
                 this.EnableButton();
             }
         }
 
         private void EnableButton()
         {
             btnTest.Enabled = true;
             btnTest.Text = "Enabled";
         }
     }
 }


新闻名称:线程间操作无效
网页链接:http://bzwzjz.com/article/ipoiic.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设 成都网站建设 盐亭网站设计 营销网站建设 高端网站设计推广 成都定制网站建设 企业手机网站建设 成都网站制作 成都网站建设公司 响应式网站设计 企业网站建设 成都网站建设 成都网站设计 企业网站建设 成都网站制作 高端定制网站设计 成都网站建设公司 成都网站建设 重庆网站建设 营销网站建设 手机网站建设 成都网站建设