【源码】c#如何使用多线程

c#若何利用多线程,简单几步,让你轻松几步解决。

东西/原料

  • IDE

方式/步调

  1. 1

    1.  打开vs或者其他IDE, 建立节制台项目如下

  2. 2

    2. 无参数的多线程。在Program.cs文件里面写入如下代码

    class Program

    {

    static void Main(string[] args)

    {

    int num = 2;

    for ( int i =0; i < num; i++)

    {

    noParmaThread();

    }

    }

    private static void StartThread()

    {

    Console.WriteLine("---------起头了新线程---------");

    Thread.Sleep(2000);//wait

    Console.WriteLine("---------线程竣事---------");

    }

    //不需要传递参数

    private static void noParmaThread()

    {

    ThreadStart threadStart = new ThreadStart(StartThread);

    var thread = new Thread(threadStart);

    thread.Start();//起头线程

    }

    }

  3. 3

    3 步调2的运行成果,如下图

  4. 4

    4. 含参数多线程。

    static void Main(string[] args)

    {

    int num = 3;

    for ( int i =0; i < num; i++)

    {

    oneParamThread("第" + i.ToString() +"个");

    }

    }

    private static void oneParamThread( string param)

    {

    var thread = new Thread(new ParameterizedThreadStart(StartThread));

    thread.SetApartmentState(ApartmentState.STA);

    thread.IsBackground = true;

    thread.Start(param);

    thread.Join();

    }

    private static void StartThread(Object obj)

    {

    string s = obj as string;

    Console.WriteLine("---------起头了 "+s +" 新线程---------");

    Thread.Sleep(2000);//wait

    Console.WriteLine("---------线程 "+s+" 竣事---------");

    }

  5. 5

    5. 步调4的运行成果如下图所示

  6. 6

    6. 利用专门的线程类。代码如下

    class Program

       {

           static void Main(string[] args)

           {

               int num = 3;

               for ( int i =0; i < num; i++)

               {

                   MyThreadClass mt = new MyThreadClass(i);

                   ThreadStart threadStart = new ThreadStart(mt.StartThread);

                   Thread thread = new Thread(threadStart);

                   thread.Start();

                   //期待线程竣事

               }

           }

       }

       public class MyThreadClass

       {

           public string output { set; get; }

           public int parame { set; get; }

           public MyThreadClass(int p)

           {

               this.parame = p;

           }

           public void StartThread()

           {

               Console.WriteLine("---------起头了 " + parame.ToString() + " 新线程---------");

               Thread.Sleep(2000);//wait

               output = "线程 "+ parame+" 竣事了";

               Console.WriteLine("---------线程 " + parame.ToString() + " 竣事---------");

           }

       }

  7. 7

    7. 步调6的成果如下图

  8. 8

    若是您感觉有效,记得鄙人方点击投票、点赞、存眷、留言,小编会按期送上更多的惊喜哦,您的撑持才是小编继续尽力的动力,么么哒。

  • 发表于 2018-04-20 00:00
  • 阅读 ( 1211 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具