此问题在此处已有答案:
Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on(22答案)
5天前关闭。
我是C#的新手,所以请对我放松,但我遇到了一个问题,我无法更改我创建的线程中标签的可见性状态。
我尝试更改的标签名为DEBUG,与Label1没有任何关系
下面是表单的代码(DebugCount是在表单本身的代码中定义的整数):
public partial class GamePage : Form
{
public GamePage()
{
InitializeComponent();
Thread DebugThread = new(new ThreadStart(DebugHandler));
DebugThread.Start();
}
private void label1_Click(object sender, EventArgs e)
{
DebugCount++;
}
public void DebugHandler()
{
while(true)
{
if(DebugCount >= 5)
{
DEBUG.Visible = true;
break;
}
}
}
}
字符串
以下是错误:System.InvalidOperationException:'跨线程操作无效:从创建控件“GamePage”的线程以外的线程访问该控件。
1条答案
按热度按时间6yt4nkrj1#
您可以将
Control.Invoke()
方法与MethodInvoker
一起使用。它允许您在UI线程上执行来自另一个线程的代码段:字符串