Xét đoạn mã sau:Tôi xử lý ngoại lệ không đồng bộ ở đâu?
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
}
}
Nếu socket
ném một ngoại lệ sau BeginConnect
lợi nhuận và trước cbConnect
được gọi là, nơi nào nó bật lên? Thậm chí nó có được phép ném vào nền không?
Lưu ý rằng Tùy chọn # 1 sẽ chặn chuỗi cho đến khi hoàn tất tác vụ. Bạn cũng có thể gọi phương thức một cách đồng bộ. Tùy chọn 2 là cách để đi đến đây ... – Marc