Visual Studio 2013& Visual Basic.NET,WPF
我已经实施了解决方案here,它确实有效!但是有一个问题:
第二次时间,应用程序崩溃:
mscorlib.dll中出现未处理的“System.Reflection.TargetParameterCountException”类型异常
图片可能在这里:http://i.stack.imgur.com/PYh1z.jpg)
我的代码(一个类):
Private Delegate Sub AddAChildDelegate()
AddHandler Q.PeekCompleted, AddressOf GetChild
Sub GetChild()
AddAChild()
End Sub
Private Sub AddAChild()
If Not Application.Current.Dispatcher.CheckAccess Then
Application.Current.Dispatcher.Invoke(New AddAChildDelegate(AddressOf AddAChild))
Exit Sub
Else
[code to add a child on UI thread (#1)]
End If
End Sub
第一次通过AddAChild, System.Threading.Thread.CurrentThread.ManagedThreadId 是一个任意的#> 1.但是当调度员通过委托再次调用它时, System.Threading.Thread.CurrentThread.ManagedThreadId 为1(UI线程,我猜)。
UI线程上的sub(通过委托)'重新调用'是否有可能与Q的下一次调用发生冲突?说实话,我甚至不知道如何排除故障。 :(