前言:此篇主要从博主使用过的几种多线程的用法从应用层面大概介绍下。文中观点都是博主个人的理解,如果有不对的地方望大家指正~~
  1、多线程:使用多个处理句柄同时对多个任务进行控制处理的一种技术。据博主的理解,多线程是该应用的主线程任命其他多个线程去协助它完成需要的功能,并且主线程和协助线程是完全独立进行的。不知道这样说好不好理解,后面慢慢在使用中会有更加详细的讲解。
  2、多线程的使用:
  (1)简单、原始的使用方法:Thread oGetArgThread = new Thread(new ThreadStart(() =>{});这种用法应该大多数人都使用过,参数为一个ThreadStart类型的委托。将ThreadStart转到定义可知:
  public delegate void ThreadStart();
  它是一个没有参数,没有返回值的委托。所以他的使用如下:
static void Main(string[] args)
{
Thread oGetArgThread = new Thread(new ThreadStart(Test));
oGetArgThread.IsBackground = true;
oGetArgThread.Start();
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("主线程计数" + i);
//Thread.Sleep(100);
}
}
private static void Test()
{
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("后台线程计数" + i);
//Thread.Sleep(100);
}
}
  定义一个没有参数没有返回值的方法传入该委托。当然也可以不定义方法写成匿名方法:
static void Main(string[] args)
{
Thread oGetArgThread = new Thread(new System.Threading.ThreadStart(() =>
{
for (var i = 0; i < 1000000; i++)
{
Console.WriteLine("后台线程计数" + i);
//Thread.Sleep(100);
}
}));
oGetArgThread.IsBackground = true;
oGetArgThread.Start();
}
  这个和上面的意义相同。得到的结果如下:
  c#基础系列
  说明主线程和后台线程是互相独立的。由系统调度资源去执行。
  如果这样那有人要问了,如果我需要多线程执行的方法有参数或者有返回值或者既有参数又有返回值呢。。。别着急我们来看看new Thread()的几个构造函数:
  public Thread(ParameterizedThreadStart start);
  public Thread(ThreadStart start);
  public Thread(ParameterizedThreadStart start, int maxStackSize);
  public Thread(ThreadStart start, int maxStackSize);