那我們該怎么辦?答案就在委托 的BeginInvoke() 方法上, BeginInvoke() 也是(異步)啟動一個新線程.例如MyDelegate dele = new MyDelegate (MyFunction);dele.BeginInvoke(10,"abcd");void MyFunction(int count...
提起多線程,不得不提起 委托(delegates)這個概念.
我理解的委托就是 具有 同樣參數(shù)和返回值 的函數(shù)的集合.
比如
public delegate void MyDelegate(int arg);
就是這種形式的函數(shù) void Myfuntion(int i); 的集合.
如何將一個函數(shù)加入 委托 的集合?
MyDelegate dele = new MyDelegate(Myfuntion1);
再增加一個
dele += new MyDelegate(Myfuntion2);
...
委托函數(shù) dele 就是 具有整數(shù)參數(shù)和空返回值的函數(shù) Myfuntion1,2的集合.
調(diào)用這個委托函數(shù)
dele(1);
就是逐個調(diào)用 Myfuntion1,2,...
一般線程函數(shù)的聲明和啟動
Thread t = new Thread(new ThreadStart(MyFunction));
t.Start();
正是調(diào)用了沒有參數(shù)和返回值的 委托函數(shù) ThreadStart
其中的參數(shù)MyFunction 是 這個委托函數(shù)中的一員.
很明顯 這樣無法傳參數(shù)和返回值,那我們該怎么辦?
答案就在委托 的BeginInvoke() 方法上, BeginInvoke() 也是(異步)啟動一個新線程.
例如
MyDelegate dele = new MyDelegate (MyFunction);
dele.BeginInvoke(10,"abcd");
void MyFunction(int count, string str);
可以實現(xiàn)參數(shù)的傳遞.
如何收集線程函數(shù) 的 返回值?
與 BeginInvoke 對應(yīng) 有個 EndInvoke 方法,而且運行完畢返回 IAsyncResult 類型的返回值.
這樣我們可以這樣收集 線程函數(shù)的 返回值
MyDelegate dele = new MyDelegate (MyFunction);
IAsyncResult ref = dele.BeginInvoke(10,"abcd");
....
int result = dele.EndInvoke(ref); < 收集 返回值
int MyFunction(int count, string str); < 帶參數(shù)和返回值的 線程函數(shù)
?石家莊網(wǎng)站建設(shè)的優(yōu)點:我們是專屬定制,制作符合您公司業(yè)務(wù)、風格的網(wǎng)站,這就做到給您制作的網(wǎng)站是網(wǎng)絡(luò)上獨一無二的網(wǎng)站,這樣更有利于搜索引擎的收錄。如果您喜歡網(wǎng)絡(luò)上某個風格的網(wǎng)站或者網(wǎng)站模板,我們是只仿制而不直接套用,我們會對其中的結(jié)構(gòu)和樣式做增減優(yōu)化,做…
?競價排名營銷是一種通過 競價購買搜索引擎中關(guān)鍵詞或關(guān)鍵短語的廣告方式。競價排名營銷分為兩種類型。 第一種,直接為真正的搜索引擎結(jié)果的排名付費,也就是說付的錢越多,網(wǎng)頁所獲得的排名名也就越高。 第二種則更類似于普通的廣告。這種競價排名營銷方式通過…
?網(wǎng)站優(yōu)化對網(wǎng)站來說是非常重要的,直接決定和影響著網(wǎng)站所起到的作用,以及在各個地方當中的排名。在進行seo優(yōu)化的過程中,我們必須要堅持一定的原則,真正的把這些事情做得更好,才可以確保最終的結(jié)果,這對于我們來說是非常重要的事。 SEO優(yōu)化主要分為8小步: …