Почему исключения, заданные в задаче, являются молчащим исключением, и вы никогда не знаете, было ли выбрано какое-то исключение.
try
{
Task task = new Task(
() => {
throw null;
}
);
task.Start();
}
catch
{
Console.WriteLine("Exception");
}
программа запускается в полной тишине! где поведение потоков различно
try
{
Thread thread = new Thread(
() => {
throw null;
}
);
thread .Start();
}
catch
{
Console.WriteLine("Exception");
}
в этом случае будет выбрано исключение нулевого указателя. В чем разница?