デバッガーに問題があります。UI スレッドで障害のあるコードが実行されると、デバッガーは障害のある行を正しく指摘します。これはスレッド内で実行される場合と同じですが、ディスパッチャー内で呼び出されると奇妙な動作をします: TargetInvocationException がスローされます。分解中。
どうすれば適切に表示され、この迷惑なメッセージを回避できますか?
問題を説明する簡単な例を次に示します。
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//navigator.NavigatToMenuAccueil(true);
//Throws NullPointerException
/*String x = null;
String y = x.ToUpper();*/
Thread th = new Thread(DoWork);
th.Start();
}
private void DoWork()
{
//Throws NullPointerException
/*String x = null;
String y = x.ToUpper();*/
Thread.Sleep(1000);
Dispatcher.BeginInvoke(new Action(() =>
{
//Throws TargetInnvocationException
/*
String x = null;
String y = x.ToUpper();
*/
MyTextBlock.Text = "My New Text";
}));
}