在UI线程上添加子项 - > mscorlib.dll中发生未处理的“System.Reflection.TargetParameterCountException”类型异常

时间:2014-08-20 02:51:40

标签: wpf vb.net

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的下一次调用发生冲突?说实话,我甚至不知道如何排除故障。 :(

0 个答案:

没有答案