2012-10-23 39 views
0

我有一个简单的问题就是关心我。这是关于Symbian中的套接字API。Symbian:如何正确取消长时间的异步套接字操作

我该如何关闭当前长时间的异步操作? 例如,如果我为GPRS执行CSecureSocket::StartClientHandshake这样的操作,它的操作时间很长。如果我想关闭我的应用,我应该打电话Cancel(),这是同步操作。我等待大约3分钟,CSecureSocket::StartClientHandshake将完成。

这不是我想要的。相反,我拨打CSecureSocket::Close()。它打破了我的握手过程,关闭了套接字。但是,下一次我收到回拨MyClass::Run,并显示错误Canceled。如果我不关闭我的应用程序,这很正常。但是如果我删除我的MyClass这是个错误。

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

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

回答

0

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