một Strange rằng tôi không còn nhận được, là thế này:ngoại lệ từ lambda biểu thức
Say,
try
{
stateClient.Socket.BeginSend(messagePrefixed, 0, messagePrefixed.Length,
SocketFlags.None, ar => stateClient.Socket.EndSend(ar), stateClient);
}
catch (SocketException ex)
{
// Handle SocketException.
}
catch (ObjectDisposedException ex)
{
// Handle ObjectDisposedException.
}
Tôi không hiểu tại sao biểu thức lambda trả về với ObjectDisposedException
không bắt !? Tôi đã đi sâu hơn vào lambdas và tôi không thể hiểu nó. Đó là về phạm vi của lambda? Phạm vi biến? Vấn đề về chủ đề? Tôi biết lambda không có đa luồng bởi bản chất của họ, nhưng như bạn có thể thấy sự trở lại đến từ một sợi khác được tạo ra bởi BeginSend
. Trước khi chuyển đổi việc triển khai thành một lambda, điều này là ok khi tôi có phương thức AsyncCallBack
xử lý EndSend
.
Bất kỳ trợ giúp đánh giá cao. Cảm ơn bạn trước.
Giải thích rõ ràng Mark, cảm ơn bạn .. –