簡體   English   中英

C#WPF項目,如何避免InvalidOperationException?

[英]C# WPF project, how to avoid InvalidOperationException?

我們有一個WPF項目。 我收到以下錯誤:

InvalidOperationException was unhandled
The calling thread cannot access this object because a different thread owns it.

我試圖從我創建的工作線程中獲取TextBox的值。

如何避免這種情況。 我可以通過使用delegate回調和Invoked()方法在另一個Form項目中避免這種情況,但不知何故它在這個WPF項目中不起作用。

任何簡單的示例代碼? 謝謝,

您需要使用Dispatcher來處理此問題。 您現在需要使用Dispatcher.InvokeDispatcher.BeginInvoke將您的調用封送回UI線程,而不是像在Windows窗體中那樣使用Control.Invoke。

怎么樣的東西:

        if (!Dispatcher.CheckAccess()) 
        {
            Dispatcher.BeginInvoke(DispatcherPriority.Normal,
            (MyDelegate)delegate
            {
                // Get value
            });
        } 
        else 
        { 
            // Get value
        }

暫無
暫無

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

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