Анонимные методы и асинхронный ввод / вывод - PullRequest
0 голосов
/ 23 декабря 2009

Может кто-нибудь сказать мне, могу ли я столкнуться с непреднамеренным поведением, если я использую анонимные методы с Async I / O?

Как пример:

Action<Socket> acceptedHandler = DoAccept
SocketAsyncEventArgs e = new SocketAsyncEventArgs();

e.Completed += ((sender, ea) => acceptedHandler(ea.AcceptSocket));

// Server is a Socket
if (!Server.AcceptAsync(e))
    acceptedHandler(e);

То же самое относится к асинхронному вводу-выводу BeginXXX / EndXXX.

Ответы [ 2 ]

1 голос
/ 23 декабря 2009

Из фрагмента кода, который вы вставили, не возникает никаких проблем. Единственный момент, когда нужно беспокоиться об анонимных методах, - это захват переменных.

1 голос
/ 23 декабря 2009

При использовании анонимных методов не о чем беспокоиться. Ваш пример на самом деле хороший пример того, когда их использовать. Непристойно не забывайте правильно использовать класс SocketAsyncEventArgs. Я надеюсь, что ваш пример чрезвычайно надуманный.

...