我有一个关心我的简单问题。它是关于Symbian中的套接字API。
我应该如何关闭当前的长异步操作?
例如,如果我为GPRS执行类似CSecureSocket::StartClientHandshake
的操作,则操作时间很长。如果我要关闭我的应用,请致电Cancel()
同步操作。我将等待约3分钟CSecureSocket::StartClientHandshake
完成。
这不是我想要的。相反,我打电话给CSecureSocket::Close()
。它打破了我的握手过程,关闭了套接字。但是下次我收到错误MyClass::Run
的回调Canceled
。如果我不关闭我的应用程序是正常的。但如果我删除MyClass
,那就错了。
如果我要删除MyClass
,~MyClass
应该拨打Cancel()
,但它会让我等待大约3分钟。
这是我的问题:我应该如何关闭长异步操作?
答案 0 :(得分:0)
AFAIK调用Close应在内部为所有正在运行的操作调用Cancel。这就是为什么你得到这个取消通知。因此,当删除MyClass时,也会调用Close,而不是Cancel。