繁体   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