[英]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.Invoke或Dispatcher.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.