Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态方法中的跨线程操作无效_C#_Multithreading_Winforms_Invalidoperationexception - Fatal编程技术网

C# 静态方法中的跨线程操作无效

C# 静态方法中的跨线程操作无效,c#,multithreading,winforms,invalidoperationexception,C#,Multithreading,Winforms,Invalidoperationexception,我的WinForms C#应用程序中有以下代码:- 这将抛出一个带有消息和详细信息的InvalidOperationException 跨线程操作无效:从创建控件“timeBox”的线程以外的线程访问控件“timeBox” 我该如何做呢?试试这个: private static void displayTime(object source, ElapsedEventArgs e) { timeTxtBox.Invoke(new Action(() => { ti

我的WinForms C#应用程序中有以下代码:-

这将抛出一个带有消息和详细信息的
InvalidOperationException

跨线程操作无效:从创建控件“timeBox”的线程以外的线程访问控件“timeBox”

我该如何做呢?

试试这个:

private static void displayTime(object source, ElapsedEventArgs e)
{ 
    timeTxtBox.Invoke(new Action(() => 
    {
    timer++;
    timeTxtBox.Text = parseTime(timer);
    }));
}

提示:这不是因为该方法是静态的。这是因为您正在另一个线程上调用此方法。您需要调用仅存在于另一个线程中的控件上的更改。
private static void displayTime(object source, ElapsedEventArgs e)
{ 
    timeTxtBox.Invoke(new Action(() => 
    {
    timer++;
    timeTxtBox.Text = parseTime(timer);
    }));
}