浅析编写C#多线程

开发 后端
本文介绍编写C#多线程应用程序非常得容易,即使对于那些从没有编写C#多线程应用程序的初学者,只需遵循以下这些简单的步骤就可以实现目的。

编写C#多线程应用程序非常得容易,即使对于那些从没有编写C#多线程应用程序的初学者,只需遵循以下这些简单的步骤就可以实现目的。

定义名称空间

在.NET中,多线程功能是在System.Threading名称空间中定义的。因此,在使用任何线程类之前,必须定义 System.Threading名称空间。定义方法如下:

  1. using System.Threading; 

启动线程

System.threading名称空间中的Thread类代表一个线程对象,用这个类对象可以创建新的线程,删除、暂停和恢复线程。 下面的代码使用Thread类创建一个新的线程,然后启动这个线程:

  1. thread = new Thread(new ThreadStart( WriteData ));  
  2. thread.Start(); 

其中WriteData是这个线程要执行的一个函数,代码如下:

  1. protected void WriteData()  
  2. {  
  3. string str ;  
  4. for ( int i = 0; i<=10000; i++ )  
  5. {  
  6. str = "Secondary Thread" + i.ToString();  
  7. Console.WriteLine(listView1.ListItems.Count, str, 0, new string[]{""} );  
  8. Update();  
  9. }  

杀死线程

Thread类的Abort方法用于***地杀死一个线程。但是请注意,在调用Abort方法前一定要判断线程是否还激活,也就是判断thread.IsAlive的值:

  1. if ( thread.IsAlive )  
  2. {  
  3. thread.Abort();  

暂停线程

Thread.Sleep方法用于将一个线程暂停一段时间,代码如下:

  1. thread.Sleep(); 

设置线程的优先权

我们可以使用Thread类的ThreadPriority属性设置线程的优先权。线程优先权的取值范围是Normal、AboveNormal、BelowNormal、Highest或者Lowest。请看下面的设置代码:

  1. thread.Priority = ThreadPriority.Highest; 

延迟线程

Thread类的Suspend方法可以延迟一个线程。线程被延迟到调用Resume方法为止。

  1. if (thread.ThreadState = ThreadState.Running )  
  2. {  
  3. thread.Suspend();  

恢复被延迟的线程

调用Resume方法可以恢复一个被延迟的线程。如果线程没有被延迟,Resume方法就是无效的。以上介绍编写C#多线程应用程序

  1. if (thread.ThreadState = ThreadState.Suspended )  
  2. {  
  3. thread.Resume();  

【编辑推荐】

  1. 定义C#接口学习经验
  2. C# ListBox学习笔记
  3. 操作C# Dataset介绍
  4. C# ODBC访问MySQL数据库
  5. 浅析C#和Java不同点
责任编辑:佚名 来源: IT实验室
相关推荐

2009-08-21 11:31:59

异步和多线程的区别

2009-08-18 16:31:19

Visual C#编写

2009-08-06 16:58:40

C#编写ActiveX

2009-08-28 15:05:35

C#编写Calenda

2009-08-14 10:35:25

C#最小化编写

2009-09-11 09:10:30

C#编写游戏

2009-08-28 16:51:32

C#线程控制

2009-08-17 14:08:33

C#进度条使用

2009-08-14 09:43:59

C#复制构造函数

2009-08-28 15:57:56

C#线程传递参数

2009-08-28 17:10:59

C#线程优先级

2009-09-04 15:09:48

C#多线程启动Squa

2009-08-28 16:43:57

C#多线程学习

2009-08-17 16:56:51

C#多线程控制进度条

2010-02-01 17:25:09

Python多线程

2009-09-24 14:59:38

C#编写COM组件

2009-07-17 10:37:05

C#多线程

2009-08-26 18:13:55

C#多线程lock

2011-04-25 14:42:10

C#lock

2009-08-07 17:25:37

C# SortedLi
点赞
收藏

51CTO技术栈公众号