网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

线程间操作无效

方法一:

成都地区优秀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://bjjierui.cn/article/ipoiic.html

其他资讯