国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#開啟線程的四種方式示例詳解

2020-01-24 00:13:24
字體:
來源:轉載
供稿:網友

一、異步委托開啟線程

 public static void Main(string[] args){  Action<int,int> a=add;  a.BeginInvoke(3,4,null,null);//前兩個是add方法的參數,后兩個可以為空  Console.WriteLine("main()");  Console.ReadKey(); } static void add(int a,int b){  Console.WriteLine(a+b); }

運行結果:

如果不是開啟線程,像平常一樣調用的話,應該先輸出7,再輸出main()

二、通過thread類開啟線程

    using System;        using System.Threading;         public static void Main(string[] args){  Thread t=new Thread(DownLoadFile_My);//創建了線程還未開啟  t.Start("http://abc/def/**.mp4");//用來給函數傳遞參數,開啟線程  Console.WriteLine("main()");  Console.ReadKey(); } //thread開啟線程要求:該方法參數只能有一個,且是object類型 static void DownLoadFile_My(object filePath){  Console.WriteLine("開始下載:"+filePath);  Thread.Sleep(2000);  Console.WriteLine("下載完成!"); }

運行結果:

三、通過線程池開啟線程

 public static void Main(string[] args){  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  ThreadPool.QueueUserWorkItem(DownLoadFile_My);  Console.WriteLine("main()");  Console.ReadKey(); } static void DownLoadFile_My(object state){  Console.WriteLine("開始下載...  線程ID:"+Thread.CurrentThread.ManagedThreadId);  Thread.Sleep(2000);  Console.WriteLine("下載完成!"); }

運行結果:

4、通過任務開啟線程

1>Task開啟線程

using System;using System.Threading;using System.Threading.Tasks; public static void Main(string[] args){  Task t=new Task(DownLoadFile_My);  t.Start();  Console.WriteLine("main()");  Console.ReadKey(); } static void DownLoadFile_My( ){  Console.WriteLine("開始下載...  線程ID:"+Thread.CurrentThread.ManagedThreadId);  Thread.Sleep(2000);  Console.WriteLine("下載完成!"); }

運行結果:

2>TaskFactory開啟線程

 public static void Main(string[] args){  TaskFactory tf=new TaskFactory();  tf.StartNew(DownLoadFile_My);  Console.WriteLine("main()");  Console.ReadKey(); } static void DownLoadFile_My( ){  Console.WriteLine("開始下載...  線程ID:"+Thread.CurrentThread.ManagedThreadId);  Thread.Sleep(2000);  Console.WriteLine("下載完成!"); }

運行結果:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漠河县| 监利县| 宁陕县| 永德县| 仪陇县| 仙游县| 饶河县| 若尔盖县| 淮南市| 曲松县| 曲阜市| 宾川县| 河间市| 农安县| 韶山市| 崇仁县| 永泰县| 清水河县| 阳春市| 龙泉市| 蒲城县| 嵊州市| 尼勒克县| 自治县| 邵东县| 噶尔县| 剑川县| 新营市| 武乡县| 云霄县| 会昌县| 潢川县| 东安县| 滨州市| 建始县| 汤原县| 光山县| 临澧县| 华池县| 巴马| 石景山区|