启动新线程时出现.NET WPF MissingMethodException

Kei*_*ith 6 .net wpf multithreading exception

我有一个WPF应用程序,其表单在启动时会在新线程中调用自定义方法.

Private Sub TestStep1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
    Dim oThread As New Thread(AddressOf DisplayNextPicture)
    oThread.Start()
End Sub

Private Sub DisplayNextPicture()
    '' do stuff
End Sub
Run Code Online (Sandbox Code Playgroud)

这在我的机器上工作正常,但在客户端的机器上启动新线程会导致MissingMethodException.我不确定为什么会发生这种情况(不幸的是,客户端位于远程位置,所以我不得不通过在跟踪语句和试错中滑动来调试它).它绝对是未找到的DisplayNextPicture()方法,因为我已经能够通过跟踪来确定.

我唯一能想到的是,这与框架层面的安全性有关.从WPF应用程序启动新线程是否有限制?

我无法通过Application.DispatcherUnhandledException捕获此异常,因此我无法获取任何异常详细信息或堆栈跟踪.客户端获取带有以下信息的.NET运行时异常对话框,这是我知道异常类型的唯一方法:

EventType:clr20r3 P1:testapp.exe P2:1.0.0.0 P3:49fa2234 P4:mscorlib P5:2.0.0.0 P6:471ebc5b P7:1295 P8:14
P9:system.missingmethodexception

请帮忙 :)

Gum*_*ron 2

刚刚在尝试运行 Windows 服务(我编写的)时遇到了这个问题。该服务在我的测试环境中可以正常运行,但在其他机器上则不行。

问题原来是问题机器运行的是 Framework 版本 3.5,而我的开发机器运行的是 3.5 Service Pack 1。将机器升级到 SP1 解决了该问题。

希望这能减轻一些人的痛苦。