我正在尝试更新异步回调中的VB.Net 4.0中的依赖属性。我觉得我正确地做了这件事,但我仍然得到“调用线程无法访问此对象,因为不同的线程拥有它。”错误。有人看到在VB.Net 4.0中使用委托的更好方法吗?访问UI线程以更改WPF中的依赖属性
Private WithEvents myObj as CallingObject
Private Delegate Sub MyErrorDel(ByVal strError as string)
Public Property ErrorMessage As String
Get
Return CStr(GetValue(ErrorMessageProperty))
End Get
Set(ByVal value As String)
SetValue(ErrorMessageProperty, value)
End Set
End Property
Private Sub MySub()
myObj.CallFuncAsync()
End Sub
Private Sub DisplayError(ByVal strError as String)
'Set Dependancy Property value Bound to UI Textbox
ErrorMessage = strError
End Sub
Private Sub myObj_CallFuncCompleted(Byval sender as Object, ByVal e as CallFuncEventArgs)
'Call delegate and pass in error string as argument
Dim delError as MyErrorDel
delError = New MyErrorDel(AddressOf DisplayError)
delError("An error occured")
Me.Dispatcher.Invoke(delError, System.Windows.Threading.DispatcherPriority.Normal, Nothing)
End Sub
每当得到的ErrorMessage设置DisplayError内异常得到投掷,即使我使用的调度员打电话DisplayError。
如果有人看到我尝试从异步回调访问Dependancy Properties的方式有任何问题,我真的很感激反馈。
感谢您的帮助!
哦,我很新在博客上的代码的问题。如何更好地制定这个问题的任何建议,将受到欢迎,以及。