Symbian:如何正确取消长异步套接字操作

时间:2012-10-23 06:45:12

标签: sockets symbian

我有一个关心我的简单问题。它是关于Symbian中的套接字API。

我应该如何关闭当前的长异步操作? 例如,如果我为GPRS执行类似CSecureSocket::StartClientHandshake的操作,则操作时间很长。如果我要关闭我的应用,请致电Cancel()同步操作。我将等待约3分钟CSecureSocket::StartClientHandshake完成。

这不是我想要的。相反,我打电话给CSecureSocket::Close()。它打破了我的握手过程,关闭了套接字。但是下次我收到错误MyClass::Run的回调Canceled。如果我不关闭我的应用程序是正常的。但如果我删除MyClass,那就错了。

如果我要删除MyClass~MyClass应该拨打Cancel(),但它会让我等待大约3分钟。

这是我的问题:我应该如何关闭长异步操作?

1 个答案:

答案 0 :(得分:0)

AFAIK调用Close应在内部为所有正在运行的操作调用Cancel。这就是为什么你得到这个取消通知。因此,当删除MyClass时,也会调用Close,而不是Cancel。