最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年10月25日 16:03:29   作者:本人菜鳥一枚  
今天小編就為大家分享一篇關(guān)于C#開啟線程的四種方式示例詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

一、異步委托開啟線程

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

運行結(jié)果:

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

二、通過thread類開啟線程

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

運行結(jié)果:

三、通過線程池開啟線程

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

運行結(jié)果:

4、通過任務(wù)開啟線程

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

運行結(jié)果:

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

運行結(jié)果:

總結(jié)

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

相關(guān)文章

最新評論

兴仁县| 东光县| 科技| 米脂县| 天柱县| 肇源县| 淳化县| 鸡东县| 德庆县| 贵南县| 偃师市| 南开区| 同江市| 肥城市| 元朗区| 瓦房店市| 淮南市| 兴城市| 郎溪县| 茂名市| 黎平县| 吴忠市| 高邑县| 滦平县| 天水市| 长子县| 凤翔县| 彭山县| 新建县| 佳木斯市| 平遥县| 江口县| 陆川县| 霍山县| 福海县| 云浮市| 南汇区| 仪陇县| 修水县| 台北县| 郸城县|