Si consideri il seguente codice:Dove gestisco le eccezioni asincrone?
class Foo {
// boring parts omitted
private TcpClient socket;
public void Connect(){
socket.BeginConnect(Host, Port, new AsyncCallback(cbConnect), quux);
}
private void cbConnect(IAsyncResult result){
// blah
}
}
Se socket
genera un'eccezione dopo BeginConnect
rendimenti e prima cbConnect
viene chiamato, dove viene pop-up? E 'anche permesso di gettare sullo sfondo?
Si noti che l'opzione n. 1 bloccherà il thread fino a quando l'azione non sarà completata. Si potrebbe anche chiamare il metodo in modo sincrono. L'opzione 2 è il modo per andare qui ... – Marc