19

次のコードがあります。

Task load = Task.Factory.StartNew(() => {//Some Stuff Which Throws an Exception});

try
{
    load.Wait();
}
catch (AggregateException ex)
{
    MessageBox.Show("Error!");
}

タスクで例外がスローされるたびに、例外が発生した時点で Visual Studio が中断するのではなく、バブルアップして try catch でキャッチされるようにします。

Google を試してみたところ、メソッドの上にこれを追加するよう提案された人[DebuggerHidden]もいましたが、うまくいきません。

4

3 に答える 3

8

VS の観点からは、他の例外から Task に渡されたデリゲート内から例外がスローされることに違いはありません。

一般的なケースでは、これを解決する方法はありません。

ただし、できることの 1 つは、例外が再スローされたときにAggregateException. がスローされたときに中断する可能性がありますAggregateExceptionが、他の例外ではありません。

[デバッグ] -> [例外] に移動し、すべての CLR 例外の選択を解除してから、集約例外を再度有効にすることができます。

ここに画像の説明を入力

本体で一時停止しTaskなくなりましたが、 を呼び出すとデバッガーが一時停止しますWait

不幸な副作用は、たとえTask.

于 2013-06-04T15:51:14.880 に答える
0

例外での停止をオフにするには、「 Ctrl + Alt + E 」を押します。これにより、[例外] ウィンドウが開きます。「共通言語ランタイム例外 - スロー」のチェックを外します。

于 2013-06-04T15:46:22.270 に答える