国产探花免费观看_亚洲丰满少妇自慰呻吟_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#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥乡县| 福清市| 丹东市| 菏泽市| 原平市| 阿拉善左旗| 南涧| 长葛市| 遵化市| 中阳县| 东乡族自治县| 玉龙| 泸溪县| 高安市| 电白县| 同江市| 濉溪县| 通榆县| 无棣县| 高尔夫| 中宁县| 西安市| 京山县| 稷山县| 阳信县| 额济纳旗| 广河县| 什邡市| 海盐县| 那曲县| 双城市| 灵川县| 庆城县| 车致| 宁安市| 陈巴尔虎旗| 布尔津县| 凌云县| 商洛市| 怀宁县| 三明市|