2012-11-21 75 views
0

我在技術說明TN2277中看到,當應用程序轉到後臺時關閉各種網絡套接字非常重要。這很可能還包括GKSession。GKSession調用是否阻塞主線程?

他們說到後臺處理時需要過期處理程序,並且如果網絡代碼必須向其他對等方說「再見」,則必須異步調用網絡代碼。

那麼GKSession的sendData方法是異步還是阻塞?

回答

1

在iOS 6的某些情況下,肯定會出現GKSession阻塞主線程的問題。目前,我們無法將我們的iPad池移至iOS 6,因爲我們的企業GKSession網絡應用遇到了這些阻塞問題(但不在iOS 5或更早版本中)。例如,從服務器iPad同時向4個以上的iPad發送文件會導致阻止行爲。在iOS 5中,我們可以將文件同時發送到最多15個連接的客戶端,而不會出現問題。另外,我們最初的測試表明,如果iOS 6設備在iOS 5設備之後連接,那麼iOS 6設備將會遇到主線程鎖定的情況下,使用iOS 5和iOS 6設備的組合。

我已經發布與iOS的開發中心的事故報告,但聽說沒有回來......

更新11月30日:我現在已經從蘋果聽說回來,他們在iOS的把它當作一個錯誤的GameKit 6正在調查。如果您在iOS 6中遇到GKSession阻塞問題(但不是iOS 5或更早版本),則應該將其報告爲錯誤。