7

CAsyncSocketCAsyncSocket如果我在调用之后Connect但在OnConnect调用回调 之前删除了我的应用程序,则会导致我的应用程序崩溃。ASSERT(pSocket != NULL)失败CAsyncSocket::DoCallBack并且应用程序退出。

换句话说,如果我创建一个CAsyncSocket,尝试将它连接到服务器,然后在连接成功或失败之前将其终止,我就会遇到问题。OnConnect我可以通过实现和设置一个指示连接尝试完成的标志来避免这种特殊的崩溃。如果标志为假,我知道删除它是不安全的。

在删除对象之前,我还需要检查其他情况吗?有没有一种方法可以检查它是否安全?或者我是否需要为我可能启动的任何操作(OnReceive, OnSend, OnConnect)实现所有回调并确保已调用这些回调?

4