Silverlight tcp套接字不会第二次回调,除非我在connectasync调用上设置了断点

Silverlight tcp套接字不会第二次回调,除非我在connectasync调用上设置了断点,silverlight,visual-studio-2010,silverlight-4.0,debugging,asyncsocket,Silverlight,Visual Studio 2010,Silverlight 4.0,Debugging,Asyncsocket,我有一个尝试连接的方法。我目前正在测试连接失败。如果失败,将向用户提供重试按钮。如果我按下它,m_tcpSocket.ConnectAsync(m_connectArgs);又打了一次电话,但我从来没有收到回电 但是,如果在ConnectAsync调用处放置断点,则会发生回调 在VisualStudio中遇到断点时,是否需要显式执行一些自动完成的清理 多谢各位 -Nick并不总是调用SocketAsyncEventArgs上的Completed事件。您应该检查调用ConnectAsync的布尔返

我有一个尝试连接的方法。我目前正在测试连接失败。如果失败,将向用户提供重试按钮。如果我按下它,m_tcpSocket.ConnectAsync(m_connectArgs);又打了一次电话,但我从来没有收到回电

但是,如果在ConnectAsync调用处放置断点,则会发生回调

在VisualStudio中遇到断点时,是否需要显式执行一些自动完成的清理

多谢各位


-Nick

并不总是调用
SocketAsyncEventArgs
上的
Completed
事件。您应该检查调用
ConnectAsync
的布尔返回值


false
值表示连接请求已同步完成,
SocketAsyncEventArgs
上的属性将准备好进行检查,
completed
事件将不会触发。
SocketAsyncEventArgs
上的
completed
事件并不总是被调用。您应该检查调用
ConnectAsync
的布尔返回值


false
值表示连接请求已同步完成,
SocketAsyncEventArgs
上的属性将准备好进行检查,
completed
事件将不会触发。

什么会导致它同步完成?该方法名为ConnectAsync,这意味着它应该异步发生。@Nikhil:它可能被称为
ConnectAsync
,但它显然也能够同步完成,如果您的代码没有考虑到这一点,它很可能在实际使用中失败。什么会导致它同步完成?我不知道文档中没有说明,而且我对网络内部结构的了解也不足以猜测。是什么导致它同步完成的?该方法名为ConnectAsync,这意味着它应该异步发生。@Nikhil:它可能被称为
ConnectAsync
,但它显然也能够同步完成,如果您的代码没有考虑到这一点,它很可能在实际使用中失败。什么会导致它同步完成?我不知道文档中没有说明,而且我对网络内部结构的了解还不够,甚至无法猜测。