0
我的應用程序是根據通過多層連接框架接收到的數據在大約5臺iPad之間進行通信並進行更新。Swift:Multipeer Connectivity + UI更新
其中一臺iPad做了以下工作:獲取當前位置並將其發送給其他同行。對等方根據收到的位置更新UI。
我發現有一個問題,當iPad需要將數據包發送給其他人時,導致其UI沒有立即更新。 UI事件一直持續到發送完數據包。由於位置不斷更新,所有這些事件不斷髮起。
我試圖把在一個線程中發送數據包:
let bgQueue = DispatchQueue(label: "hk.edu.polyu.isurf.sendqueue", qos: .utility, attributes: .concurrent)
,然後把代碼這個bgQueue內發送數據包:
func sendPacket {
bgQueue.async {
// create packet, and send
}
}
我的位置更新的代碼將導致此:
func receiveLocation() {
sendPacket()
updateUI()
}
如何提高效率? UI現在基本上無法更新,嚴重「滯後」。
我試圖改變bgQueue的類型,但沒有改進。
謝謝。