1. 程式人生 > >c#中委託與多執行緒的實質

c#中委託與多執行緒的實質

delegate(委託)的概念,.Net的委託本質上就是指向函式的指標,只不過這種指標是經過封裝後型別安全的。委託和執行緒是兩個不同的概念,執行緒是動態的,委託就是一個或一組記憶體地址,是靜態的。執行緒執行時如果遇到了指向函式的指標就執行這個函式。.Net為了方便程式設計,給委託賦予了兩種方式以供呼叫執行緒來執行,即同步和非同步方式,它們分別通過Invoke和BeginInvoke來開啟。Invoke就是同步執行,由呼叫執行緒來執行,而BeginInvoke則開啟了一個後臺執行緒來執行delegate所指向的函式,這個後臺執行緒和呼叫執行緒之間屬於非同步執行方式。實際上有了delegate這個概念,你在程式設計時就可以不用直接使用Thread類來開闢新的執行緒了,因為微軟替你實現了。