在開發過程中經常使用到多執行緒。對ios的多執行緒有很多不解的地方,這裡暫且記錄下來。具體原因有待以後慢慢研究。
-(void)scanloop
}[pool release];
}以asyncudpsocket物件為引數的處理函式,如下所示:
-(void)processipscanwithsocket:(asyncudpsocket*)_udpsocket
processipscanwithsocket:_udpsocket]還是呼叫
[self
performselectoronmainthread:
@selector
(processipscanwithsocket:) withobject:_udpsocket
waituntildone:
no];
都得不到伺服器返回的響應訊息。經過除錯,伺服器是收到訊息的,並且成功傳送返回包。在程式中得不到響應,猜想因為是asyncudpsocket物件的delegate無效。如果將建立asyncudpsocket物件的**放在主線程處理,一切就正常了。可以得到從伺服器返回的資料。
將以上**改為下面的**,一切都正常。**如下:
-(void)processipscanwithsocket
//執行緒處理函式
-(void)scanloop
}[pool release];
}
多執行緒程式設計注意事項
1 明確目的,為什麼要使用多執行緒?如果是由於單執行緒讀寫或者網路訪問 例如http訪問網際網路 的瓶頸,可以考慮使用執行緒池。如果是對不同的資源 例如socket連線 進行管理,可以考慮多個執行緒。2 執行緒使用中要注意,如何控制線程的排程和阻塞,例如利用事件的觸發來控制線程的排程和阻塞,也有用訊...
多執行緒的使用與注意事項
多執行緒程式的控制模型可以參考這裡,一般情況下都是使用 管理者 工人模型,這裡,我們使用iphone sdk中的 nsthread 來實現它。接下來,在 tutorialprojectviewcontroller.h 檔案中建立各個ui控制項的 iboutlets.123 4567 891011 1...
多執行緒的使用與注意事項
多執行緒的使用與注意事項 從例子入手 多執行緒程式的控制模型可以參考 url 這裡 url 一般情況下都是使用 管理者 工人模型,這裡,我們使用iphone sdk中的 nsthread 來實現它。img 接下來,在 tutorialprojectviewcontroller.h 檔案中建立各個ui...