一,开始使用多线程
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");
}
}