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

首頁 > 編程 > C# > 正文

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

2019-10-29 19:58:08
字體:
來源:轉載
供稿:網友

一、異步委托開啟線程

 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); }

運行結果:

C#,線程

如果不是開啟線程,像平常一樣調用的話,應該先輸出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("下載完成!"); }

運行結果:

C#,線程

三、通過線程池開啟線程

 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("下載完成!"); }

運行結果:

C#,線程

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("下載完成!"); }

運行結果:

C#,線程

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("下載完成!"); }

運行結果:

C#,線程

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寻甸| 高台县| 陇南市| 汉阴县| 沁源县| 长沙市| 英德市| 海兴县| 竹山县| 三明市| 乌恰县| 德化县| 保德县| 大竹县| 西贡区| 精河县| 禹城市| 乌拉特前旗| 黑龙江省| 建平县| 玛沁县| 揭西县| 吉林市| 新建县| 龙口市| 三台县| 宜州市| 临潭县| 丰台区| 张家港市| 安乡县| 潞西市| 乳山市| 平山县| 盈江县| 家居| 怀化市| 扶沟县| 江西省| 吉首市| 内黄县|