代码改变世界

一步一步学习C#中的多线程 --- 1、初识线程(1)

2011-03-20 18:51  RyanXiang  阅读(1148)  评论(0编辑  收藏  举报

仅是对自己在学习多线程知识时的点点滴滴进行记录。希望园子里的朋友多多指点。

1、为什么要使用线程 ?

CLR via C#给出了三个理由。

1、可以使用线程将代码同其他代码隔离。

2、可以使用线程来简化编码。

3、可以用线程来实现并发执行。

同样的理由还可以列出很多。

  • 使 UI 响应更快
  • 利用多处理器系统
  • 简化建模
  • 执行异步或后台处理

    关于为什么使用线程我不想多说。网上有很多文章都有介绍。同样不使用线程的理由很多,在这里我们没有必要去探讨这个问题。大家了解一下就可。用或不用可依

据自己的应用的具体情况而定。

2、使用C# 的Thread 类创建线程。

下面代码是使用和创建线程的一个简单的例子。

 1:  using System;
 2:  using System.Collections.Generic;
 3:  using System.Linq;
 4:  using System.Text;
 5:  using System.Threading;
 6:  using System.Threading.Tasks;
 7:  namespace Threading
 8:  {
 9:      class Program
10:      {
11:          static void Main(string[] args)
12:          {
13:              Thread t1 = new Thread(NewThread);
14:              t1.Name = "newThread";
15:              t1.Start();
16:              Console.WriteLine("this is a main Thread" + Thread.CurrentThread.ManagedThreadId);
17:              Console.ReadKey();
18:          }
19:   
20:          static void NewThread()
21:          {
22:              Thread.Sleep(2000);
23:              Console.WriteLine("this ia new Thread" + Thread.CurrentThread.ManagedThreadId);
24:          }
25:      }
26:  }
27:   
28:   

Thread类的构造函数接受ThreadStart和ParameterizedStart的委托参数。在创建了Thread对象后,就可以调用Start()方法启动线程。在上述代码中我们给新创建

的线程设置了名字。我们通过VS中的Threads功能看见相关的内容。如下图:我们可以看见新创建的名字为newThread的线程。

1