Странный, который я еще не получил, это:
Скажем,
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.
}
Я не понимаю, почему выражение лямбда, которое возвращается с помощью ObjectDisposedException
, не поймано!? Я шел глубже в лямбда, и я не могу это понять. Это о масштабах лямбда? Диапазонные переменные? Тема выпуска? Я знаю, что lambda не имеет многопоточности по своей природе, но, как вы видите, возвращение происходит из другого потока, созданного BeginSend
. Прежде чем преобразовать реализацию в лямбда, это было нормально, когда у меня был метод AsyncCallBack
, обрабатывающий EndSend
.
Любая помощь оценивается. Заранее благодарю вас.