C#多线程(一)

一,开始使用多线程

class Program
    {


        static void Main()
        {
            Thread t = new Thread(Go);//用便捷的方式创建一个线程1           
            t.Start();


            Go();
            Console.ReadKey();
        }


        static void Go() { Console.WriteLine("hello!"); }
    }


二,传入数据到ThreadStart中

ThreadStart委托,因为它不接受参数,所幸的是,.NET framework定义了另一个版本的委托叫做ParameterizedThreadStart, 它可以接收一个单独的object类型参数:

 public delegate void ParameterizedThreadStart(object obj);
    class Program
    {
        static void Main()
        {
            Thread t = new Thread(Go);           
            t.Start(true);
            Go(false);
            Console.ReadKey();
        }


        static void Go(object uppercase)
        {
            if ((bool)uppercase == true)
            { Console.WriteLine("HELLO"); }
            else
            { Console.WriteLine("hello"); }           
                
        }
    }


三,线程命名

线程可以通过它的Name属性进行命名,这非产有利于调试:可以用Console.WriteLine打印出线程的名字,Microsoft Visual Studio可以将线程的名字显示在调试工具栏的位置上。线程的名字可以在被任何时间设置——但只能设置一次,重命名会引发异常。

  程序的主线程也可以被命名,下面例子里主线程通过CurrentThread命名:

 class Program
    {
        static void Main()
        {
            Thread.CurrentThread.Name = "main";
            Thread t = new Thread(Go);
            t.Name = "new tread";
            t.Start();
            Go();
            Console.ReadKey();
        }


        static void Go()
        {           
            Console.WriteLine(Thread.CurrentThread.Name+" HELLO"); 
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值