Rozważmy następujący kod:Gdzie mam obsługiwać asynchroniczne wyjątki?
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
}
}
Jeśli socket
zgłasza wyjątek po BeginConnect
zwrotów i przed cbConnect
jest wywoływana, gdzie to pop-up? Czy wolno nawet rzucać się w tło?
Należy pamiętać, że opcja nr 1 zablokuje wątek do momentu zakończenia czynności. Równie dobrze można wywołać metodę synchronicznie. Opcja 2 jest sposobem, aby przejść tutaj ... – Marc