最新国产好看的视频,伊人天堂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)用的話,應該先輸出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、通過任務開啟線程

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)文章

最新評論

确山县| 博爱县| 玉田县| 九江县| 龙海市| 临桂县| 新田县| 方山县| 汨罗市| 定安县| 尚义县| 布尔津县| 北宁市| 大新县| 炉霍县| 绵阳市| 宝兴县| 潮州市| 纳雍县| 凌源市| 名山县| 马公市| 自贡市| 隆安县| 环江| 高尔夫| 新郑市| 綦江县| 石渠县| 青铜峡市| 汽车| 农安县| 凤阳县| 广德县| 贵南县| 西吉县| 荥经县| 石林| 紫金县| 苍山县| 敦煌市|