2

このマルチスレッド WPF アプリケーションと、それをテストしている 2 つの異なるマシンがあります。

1 つ目は、VMware クライアント上の Windows 7 Professional SP1 仮想マシンです。2 つ目は、Win 7 Professional 物理マシンです。SP1 なし。

最初のマシンでは、アプリケーションは正常に実行され、2 番目のマシンでは、次の呼び出し時にアプリケーションが AccessViolation 例外を出力します。

App.Current.Dispatcher.Invoke(() => { do stuff });

次の方法で作成されたスレッドから:

ThreadPool.QueueUserWorkItem( /* callback that calls the dispatcher */ );

.Net フレームワークのバージョンが同じ場合に、なぜこれが異なる動作をするのか教えていただけますか? サービスパックのせいですか?どうすればこれを解決できますか?

4

1 に答える 1

0

どうやら私はHookManagerを使用していて、2番目のものを起動する前に1つを閉じていませんでした...なぜそれが物理マシンではなく仮想マシンで機能したのかはわかりません...

于 2013-01-04T16:10:01.743 に答える