none
Dispatcher相同却仍出现跨线程错误 RRS feed

  • 问题

  • 错误提示是

    必须在与 DependencyObject 相同的线程上创建 DependencySource。

    我用如下代码确保线程相同

    If Me.Dispatcher.Equals(MainWindowUI.Dispatcher)=True
    
     Me.ShowDialog()
    
    End If
    

    但还是抛出了上面的异常

    但奇怪的是,我把ShowDialog放在MainWindowUI的Loaded事件中执行时没有问题

    -------------

    以下是补充:

    我又debug几次,发现问题是出在,抛出异常的Window中有一个ListBox,而这个ListBox的Item,我在Add的时候使用的是来自于其他线程的BitmapImage

    所以才出现那个异常,可又如何将来自其他线程的BitmapImage合法的变为此线程的资源呢?

     


    2011年5月21日 4:28

答案

全部回复