執行緒建立與啟動
nsthread的建立主要有兩種直接方式:
[nsthread detachnewthreadselector:@selector(mythreadmainmethod:) totarget:self withobject:nil];
和 nsthread* mythread = [[nsthread alloc] initwithtarget:self
selector:@selector(mythreadmainmethod:)
object:nil];
[mythread start];
這兩種方式的區別是:前一種一呼叫就會立即建立乙個
執行緒來做事情;而後一種雖然你 alloc 了也 init了,但是要直到我們手動呼叫 start 啟動執行緒時才會真正去建立執行緒。
這種延遲實現思想在很多跟資源相關的地方都有用到。後一種方式我們還可以在啟動執行緒之前,對執行緒進行配置,比如設定 stack 大小,執行緒優先順序。
還有一種間接的方式,更加方便,我們甚至不需要顯式編寫 nsthread 相關**。那就是利用 nsobject 的類方法 performselectorinbackground:withobject: 來建立乙個
執行緒:
[myobj performselectorinbackground:@selector(mythreadmainmethod) withobject:nil];
其效果與 nsthread 的 detachnewthreadselector:totarget:withobject: 是一樣的。
******************************
如在我們在某個
NSThread 的建立和使用
執行緒建立與啟動 nsthread的建立主要有兩種直接方式 nsthread detachnewthreadselector selector mythreadmainmethod totarget self withobject nil 和 nsthread mythread nsthread a...
NSThread建立多執行緒
乙個nsthread的物件就代表乙個執行緒。建立 啟動執行緒 nsthread thread nsthread alloc initwithtarget self selector selector download object nil thread start 主線程的相關用法 nsthread...
DLL的建立和使用
我們將建立的第一種型別的庫是動態鏈結庫 dll 使用 dll 是一種重用 的絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練涵蓋以下內容 建立新的動態鏈結庫 dll 專案。向動態鏈結庫新增類。建立引用動態鏈結庫的應用程式...