欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

c#多線程隨記回顧

系統 2167 0

C#多線程隨記回顧

1.創建多線程方式知道的有三種:

?---手動創建Thread、使用線程池、使用task任務

---手動創建Thread,分兩種帶參數和不帶參數的幫助委托器

eg:? //幫助器委托不帶參數

??????? //??? ThreadStart ts = new ThreadStart(DoWork)

??????? //??? for (int i = 1; i <= 3; i++)

??????? //??? {

??????? //??????? Thread t = new Thread(ts);

??????? //??????? t.Name = "線程"+i.ToString() ;

??????? //??????? t.Start();

??????? //??? }

??????? //??? Console.Read();

? eg://幫助器委托帶參數

??????????? ParameterizedThreadStart ts = new ParameterizedThreadStart(DoWork);

??????????? for (int i = 1; i <= 3; i++)

??????????? {

??????????????? Thread t = new Thread(ts);

??????????????? t.Name = "線程" + i.ToString();

??????????????? t.Start(5);??????????? }

??????????? Console.Read();

-------回調方法:

//委托

f = new FDeletate(Fibonacci);

??????????? AsyncCallback callback = new AsyncCallback(Display);//回調委托

??????????? int n = Convert.ToInt32(Console.ReadLine());

??????????? f.BeginInvoke(n, callback,"ggds");

??????????? Console.ReadLine();

--回調方法; = f.EndInvoke(r);將結果返回

? static void Display(IAsyncResult r)

??????? {

??????????? int result = f.EndInvoke(r);

??????????? Console.WriteLine("第"+r.AsyncState+"項值是"+result);

??????????? Console.Read();

??????? }

-----------補充線程:

----線程是windows任務調度最小的單位,線程是程序的一個執行流;

cpu切換的不是進程而是線程。進程占用資源太多;

--單核cpu一個時間只有一個線程;一個exe就是一個進程;

一個線程對應一個寄存器;

--Process.Start("");

---一個應用程序與只能承載一個exe,可承載多個dll;

---一個進程可以有多個應用程序域;

--一個線程可穿透多個應用程序與,

同一時間一個線程指正屬于一個應用程序域;

一個應用程序與可以跑多個線程;

==一個應用程序與有一個上下文;

----當前線程:

?Thread t = Thread.CurrentThread;

t.name;

-----

?? //后臺線程;

?? t.IsBackground = true;

--thrad線程是clr線程和操作系統線程是不一樣的;之間是映射關系;

線程終止:Thread.abort();

前臺線程和后臺線程。這兩者的區別就是:應用程序必須運行完所有的前臺線程才可以退出;而對于后臺線程,應用程序則可以不考慮其是否已經運行完畢而直接退出,所有的后臺線程在應用程序退出時都

---會自動結束。

---默認為前臺線程,thread.isbackground=false;

--線程優先級:AboveNormal;

?//默認優先級:為AboveNormal;

??????????? Thread t = Thread.CurrentThread;

??????????? t.Priority = ThreadPriority.AboveNormal;

-----初始化一個線程:需要1M內存;

委托穿多個參數時,可以用list<object>

------windows窗體跨線程調用時,控制不能跨線程需要設置:

Control.checkForIllegalcrossThreadcalls=false;不檢查,則能跨線程

-----lamed:

匿名函數:Cal是委托;

Cal c = new Cal((a, b) => { return a + b; });

如果沒有參數:

Cal c = new Cal(() => { return 123; });

Cal c = new Cal((a, b) => { return a + b; });

IAsyncResult result = c.BeginInvoke(1, 2, null, null);

//阻塞線程;

int cc = c.EndInvoke(result);

??????????????? Console.WriteLine(cc);

??????????? Console.Read();

----cc為返回結果;

------------------------------------第二種通過線程池來創建:

----------lock鎖:lock內的變量是引用類型;操作公共資源時只讓一個線程來操作,進行線程隔離和線程的同步(無論哪個線程訪問都是的結果,比如+1操作);比如一個數組,否則會出

?

現超出索引;

lock()--:其實內部為monitor

{

?

}

---創建一個實例,會在一個應用程序域創建(類空間、同步索引快(默認為-1,類型指針(指向該實例的類型));

提到對象池,就應該想到lock;

---以后調用線程的時候就用線程池;guo方法是object類型;這樣比穿件Thread簡單多了;

?? //線程池:ThreadPool.QueueUserWorkItem(new WaitCallbac(guo), "");

---線程池原理,將任務加載到隊列排隊,在進入到本地隊列讓cpu執行;

?? {

?? ThreadPool.QueueUserWorkItem(new WaitCallback(guo), "");

??????????? Console.Write("主線程");

??????????? Console.Read();

??????? }

??????? public static void guo(object i)

??????? {

??????????? Thread.Sleep(3000);

??????????? Console.WriteLine("sfsdf");

??????? }

---死鎖:相互等待對方釋放資源;

---委托如果是無參,有返回值,那么匿名函數,應該為 ()=>{};;

--------3.使用task任務;

????????? Task<string> ta = new Task<string>(() => {

??????????????? System.Threading.Thread.Sleep(2000);

??????????????? Console.WriteLine("sfsf");

??????????????? return "";

??????????? });

??????????? ta.Start();

??????????? Console.Write("主線程");

??????????? Console.Read();

--

--task任務,可以使用 ta.Wait();來阻塞主線程,讓子線程執行完,在執行;

--Thread t = new Thread(() => { });

? t.Join();//相當于ta.Wait();

c#多線程隨記回顧


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一区二区国产精品 | 麻豆网站入口 | 精品欧美成人高清视频在线观看 | 亚洲午夜久久久精品影院 | 国产精品国产午夜免费福利看 | 亚洲香蕉在线视频 | 亚洲二区视频 | 国产精选一区二区 | 色综合欧美 | 国产精品国产精品 | 美女被免费网站在线视频九色 | 99精品视频免费看 | 91高清国产经典在线观看 | 婷婷精品国产亚洲AV在线观看 | 极品xxxx欧美一区二区 | 欧美久久xxxxxx影院 | 久草在线资源福利站 | 在线观看av网站永久 | 浮力影院在线 | 男女在线网站 | 欧美精品黄页免费高清在线 | 色人阁在线 | 午夜精品 | 欧洲色吧 | 日本免费视频在线观看 | 日韩一区二区三区视频 | 久久久青草 | 成人精品一区二区三区校园激情 | 黄网免费看 | 亚洲男人天堂2021 | 国产高清xxxsexvideo | 国产在线精品一区二区高清不卡 | 亚洲天堂ww | 亚洲成人免费 | 亚洲一区二区三区视频 | 亚洲日本片 | 欧美精品一区二区三区在线 | 亚洲精品一区henhen色 | 国产精品亚洲第一区二区三区 | 日韩欧美精品在线 | 亚洲精品成人 |