您好,登錄后才能下訂單哦!
方法一:
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";
}
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。