线程间操作无效

方法一:

成都地区优秀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";
         }
     }
 }

文章题目:线程间操作无效
新闻来源:https://www.cdcxhl.com/article2/ipoiic.html

成都网站建设公司_创新互联,为您提供关键词优化企业建站搜索引擎优化网站排名定制开发ChatGPT

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作