C#中的多线程编程

C#中的多线程编程

ID:41037126

大小:48.00 KB

页数:9页

时间:2019-08-14

C#中的多线程编程_第1页
C#中的多线程编程_第2页
C#中的多线程编程_第3页
C#中的多线程编程_第4页
C#中的多线程编程_第5页
资源描述:

《C#中的多线程编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C#中的多线程编程C#是.Net平台的通用开发工具,它能够建造所有的.Net应用。在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的不同。应用程序域提供了一种安全而通用的处理单元,公共语言运行库可使用它来隔离应用程序。注意在.Net中应用程序的隔离是应用程序域而不是进程,在单个进程中可以存在几个应用程序域,而且线程可以跨越应用程序域的范围,某个线程中的方法可以调用另一个线程的方法,这样的话就不会造成进程间调用或进程间切换等方面的额外开销。可以说应用程序域是物理进程(也即win32中的Process)内的逻辑进程。  

2、   在Visul C#中System.Threading 命名空间提供一些使得可以进行多线程编程的类和接口,其中线程的创建有以下三种方法:Thread、ThreadPool、Timer。下面我就它们的使用方法逐个作一简单介绍。1. Thread       这也许是最复杂的方法,但它提供了对线程的各种灵活控制。首先你必须使用它的构造函数创建一个线程实例,它的参数比较简单,只有一个ThreadStart 委托:[C#]                   public Thread(ThreadStart start);然后调用Start()启动它,当然你可以利用它的Priorit

3、y属性来设置或获得它的运行优先级(enum ThreadPriority:  Normal、 Lowest、 Highest、 BelowNormal、 AboveNormal)。见下例:它首先生成了两个线程实例t1和t2,然后分别设置它们的优先级,接着启动两线程(两线程基本一样,只不过它们输出不一样,t1为“1”,t2为“2”,根据它们各自输出字符个数比可大致看出它们占用CPU时间之比,这也反映出了它们各自的优先级)。 static void Main(string[] args)  {   Thread t1 = new Thread(new ThreadStart(Threa

4、d1));   Thread t2 = new Thread(new ThreadStart(Thread2));   t1.Priority = ThreadPriority.BelowNormal  ;   t2.Priority = ThreadPriority.Lowest ;           t1.Start();      t2.Start();   }  public static void Thread1()  {    for (int i = 1; i < 1000; i++)    {//每运行一个循环就写一个“1”     dosth();    Con

5、sole.Write("1");   }   }  public static void Thread2()  {    for (int i = 0; i < 1000; i++)    {//每运行一个循环就写一个“2”    dosth();    Console.Write("2");   }  }  public static void dosth()  {//用来模拟复杂运算   for (int j = 0; j < 10000000; j++)    {        int a=15;    a = a*a*a*a;   }  }以上程序运行结果为:1111111

6、11111111111111111111111111111111111211111111111111111111111111111111111111111121111111111111111111111111111111111111111112111111111111111111111111111111111111111111211111111111111111111111111111111111111111121111111111111111111111111111111111111111112       从以上结果我们可以看出,t1线程所占用CPU的时间远比t2的多,这是因为

7、t1的优先级比t2的高,若我们把t1和t2的优先级都设为Normal,那结果是如何?它们所占用的CPU时间会一样吗?是的,正如你所料,见下图: 121211221212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212        

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。