我有以下代碼:Console.WriteLine如何影響異常堆棧
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Started");
var res = GetSlowStringAsync();
res.ContinueWith(
c =>
{
Console.WriteLine("Will it crash?");
//Console.WriteLine(c.Result);
}
);
//Console.WriteLine("Press any key");
Console.ReadKey();
Console.WriteLine("Continue on the main thread");
GC.Collect();
Console.WriteLine("Memory cleared");
Thread.Sleep(10000);
}
public static async Task<string> GetSlowStringAsync()
{
await Task.Delay(2000);
throw new Exception("will you handle it?");
return "somestring";
}
}
也App.config中我加了以下幾行:
<runtime>
<ThrowUnobservedTaskExceptions enabled ="true" />
</runtime>
我使用的Visual Studio 2015年14.0.23107.0 D14REL Target .Net Framework 4.6。 在「無調試開始」模式下執行。
如果之後的問題「它會崩潰」按任何按鈕,然後程序將崩潰。
但如果以取消
Console.WriteLine("Press any key");
,並在執行模式,那麼程序將不會崩潰「沒有調試運行」。爲什麼Console.WriteLine會影響引發異常的方式?
適合我工作。 – Abhishek
你的意思是這兩種情況都會在「無需調試開始」模式下產生異常? –
它不扔在這兩個 – Abhishek