如果我对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异步I / O.
答案 0 :(得分:1)
使用匿名方法时无需担心。您的示例实际上是何时使用它们的一个很好的示例。不记得要正确使用SocketAsyncEventArgs类。我希望你的榜样非常人为。
答案 1 :(得分:1)
从您粘贴的代码段看起来似乎没有任何问题。唯一需要担心匿名方法的是捕获变量。