2011-07-05 5 views
1

フォルダ内でファイルが変更されたときに呼び出される関数があります。この関数は、UIに格納されているリストビューの項目を更新します。ここでWPF:スレッドでUIオブジェクトにアクセスするとエラーが発生する

は関数である。ここでは

Private Sub FileChangeNotify() 
    Try 
     LstMoulures.Items.Refresh() 
    Catch ex As Exception 
     MsgBox(Ex.exception) 
    End Try 

End Sub 

はエラーです: "LeはアンESTpropriétaireCETのオブジェparceのqu'unのAUTREスレッドàappelant NEのPEUTのPASのaccéderを通します。" (翻訳:他のスレッドが所有しているため、呼び出し元スレッドはこのオブジェクトにアクセスできません)

ありがとう。

答えて

1
Private Sub FileChangeNotify() 
    LstMoulures.Dispatcher.BeginInvoke (New Action(AddressOf LstMoulures.Items.Refresh)) 
End Sub 
+0

ああ、ええ!正確に私が必要としたもの。ありがとう。 –

3

UIスレッドのオブジェクトを別のスレッドから直接変更することはできません。BeginInvokeメソッドを確認して、スレッド間でUIオブジェクトにアクセスできます。

チェックアウトWPF C# - Editing a listbox from another thread

関連する問題