0

我有一个简单的问题就是关心我。这是关于 Symbian 中的 Sockets API。

我应该如何关闭当前的长异步操作?例如,如果我做类似CSecureSocket::StartClientHandshakeGPRS 的操作,它的操作会很长。如果我想关闭我的应用程序,我应该称之为Cancel()同步操作。我正在等待大约 3 分钟,而CSecureSocket::StartClientHandshake将完成。

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

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

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

4

1 回答 1

0

AFAIK 调用 Close 应该在内部为所有正在运行的操作调用 Cancel。这就是您收到此已取消通知的原因。因此,当删除您的 MyClass 时,还要调用 Close,而不是 Cancel。

于 2012-11-01T13:26:34.043 回答