2012-10-23 94 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。