thread建立乙個執行緒進行多執行緒工作
thread t = new thread(new threadstart(() => ));
t.start();
threadpool
把執行緒託管到.net執行緒池中,減少了執行緒建立的開銷
threadpool.queueuserworkitem((objstate) => , "a"
);backgroundworker
把執行緒託管到內部執行緒池,並且提供了資訊進度反饋的能力
backgroundworker b = new
backgroundworker();
b.workerreportsprogress = true
;b.dowork += (s, e) =>
};b.progresschanged += (s, e) =>;
b.runworkerasync();
task
增強了threadpool的能力,支援執行緒停止,狀態返回、執行緒等待
cancellationtokensource cts = new
cancellationtokensource();
task t = new task((ct) =>
return
;},cts);
console.writeline(
"begin");
t.start();
t.continuewith((s) =>);
//await a.configureawait(false);
//支援執行緒等待
console.read();
cts.cancel();
console.read();
parallel
list
nums = new list() ;
parallel.foreach(nums, (i) =>);
parallel.invoke(() =>,
() =>);
plinq
parallel方式在linq下的實現
list
nums = new list() ;
nums.asparallel().forall((x) =>);
async
await
用同步的程式設計方式編寫非同步**,主要用於解決一部**編寫**臃腫的情況,非同步執行的task被他用await等待同步執行
public
async
static
void
aa()}
public
static task sleep(int
i));
t.start();
return
t;}
同步 非同步 多執行緒
1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...
同步 非同步 多執行緒
1 首先明確一點,對於單核cpu,任意乙個時刻只有乙個執行緒在執行。那麼既然這樣,多執行緒還有什麼意義呢?舉例來說,現在只有乙個人,要做好幾個任務。單執行緒就是,任務乙個乙個地做,必須做完乙個任務後,再去做另乙個任務。多執行緒就是一會做這個任務,一會做那個任務,每個任務做一會,不停的切換。顯然,最後...
多執行緒 執行緒同步 非同步
同步和非同步 同步和非同步通常用來形容一次方法的呼叫。同步方法呼叫一旦開始,呼叫者必須完成所有的操作一直到方法呼叫結束,其他呼叫者才能繼續後續的行為,非同步方法呼叫類似乙個訊息傳遞,一旦開始,方法呼叫就會立即返回,其他呼叫者則可以無需等待,可以立即繼續後續的操作。非同步 不過,如果 我們 趕時髦,就...