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