簡體   English   中英

方法不返回控制

[英]Method doesn't return controlling

我在WPF表單和另一個類上都有一個網格,其中包含一些事件。 我從wpf表單中訂閱了這些事件,並希望它們將一些對象添加到網格中,但唯一的問題是“調用線程無法訪問此對象,因為其他線程擁有它。” 如何避免這個問題並獲得相同的功能?

這已在StackOverflow和其他地方的ad nauseam中涵蓋。 您需要使用Dispatcher來整理對UI線程的訪問。 例如:

private void OnSomeEvent(object sender, EventArgs e)
{
    // this is being called on a thread other than the UI thread so marshal back to the UI thread
    Dispatcher.BeginInvoke((ThreadStart)delegate
    {
        // now the grid can be accessed
        grid.Whatever = foo;
    });
}

這是一個跨線程問題。 查看委托創建,以便您可以安全地調用另一個線程來修改在另一個線程上創建的內容。 這是一篇有關如何進行這些線程安全的調用的MSDN優秀文章。

http://msdn.microsoft.com/zh-cn/library/ms171728(v=vs.80).aspx

暫無
暫無

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

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