簡體   English   中英

UserControl引發異常“跨線程操作無效”

[英]UserControl throwing exception “Cross-thread operation not valid”

我有一個usercontrol和兩個我想將class1的結果打印到usercontrol中的類。我正在使用此行從class發送結果

((merge.MyControl)(MyControlInstance)).CLIDisplay = e.WorkItem.CustomerId;

我顯示結果的控件屬性是

public string CLIDisplay
        {
            get { return lblResultCLI.Text; }
            set
            {
                    lblResultCLI.Text = value;

            }
        }

但是我在c#表單中調用類時遇到了Exception

An exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll but was not handled in user code

Additional information: Cross-thread operation not valid: Control 'tbxEvents' accessed from a thread other than the thread it was created on.

您將必須使用invoke

this.Invoke((MethodInvoker) delegate
{
   lblResultCLI.Text = value;
});

下次請確保您使用Google ...

跨線程操作無效:從創建該線程的線程以外的線程訪問控件

發生此錯誤的原因是lblResultCLI是在運行代碼的線程上創建的,而不是在另一個線程上創建的,這就是為什么必須使用Invoke,以便訪問lblResultCLI控件的代碼在創建該線程的同一線程上執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM