Pensavo che i metodi asincroni dovessero comportarsi come i metodi normali fino a quando non sono arrivati ad un'attesa.Perché i metodi asincroni non aspettati non generano eccezioni?
Perché questo non genera un'eccezione?
C'è un modo per far lanciare l'eccezione senza attendere?
using System;
using System.Threading.Tasks;
public class Test
{
public static void Main()
{
var t = new Test();
t.Helper();
}
public async Task Helper()
{
throw new Exception();
}
}
Come nota storica, le eccezioni sono state inizialmente sollevate "direttamente" come previsto. Tuttavia, questo comportamento era fonte di confusione perché le eccezioni prima e dopo l'attesa si sarebbero comportate diversamente, e avrebbe potuto ottenere * veramente * confusione se l'attesa era condizionata. –
@StephenCleary Quando è stato cambiato? Durante la fase CTP? – i3arnon
@ I3arnon: Sì; IIRC solo il primo CTP si è comportato in questo modo. –