浅析编写C#多线程

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

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

定义名称空间

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

using System.Threading; 
  • 1.

启动线程

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

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

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

protected void WriteData()  
{  
string str ;  
for ( int i = 0; i<=10000; i++ )  
{  
str = "Secondary Thread" + i.ToString();  
Console.WriteLine(listView1.ListItems.Count, str, 0, new string[]{""} );  
Update();  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

杀死线程

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

if ( thread.IsAlive )  
{  
thread.Abort();  

  • 1.
  • 2.
  • 3.
  • 4.

暂停线程

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

thread.Sleep(); 
  • 1.

设置线程的优先权

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

thread.Priority = ThreadPriority.Highest; 
  • 1.

延迟线程

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

if (thread.ThreadState = ThreadState.Running )  
{  
thread.Suspend();  

  • 1.
  • 2.
  • 3.
  • 4.

恢复被延迟的线程

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

if (thread.ThreadState = ThreadState.Suspended )  
{  
thread.Resume();  

  • 1.
  • 2.
  • 3.
  • 4.

【编辑推荐】

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

2009-08-21 11:31:59

异步和多线程的区别

2009-08-06 16:58:40

C#编写ActiveX

2009-08-28 15:05:35

C#编写Calenda

2009-08-18 16:31:19

Visual C#编写

2009-09-11 09:10:30

C#编写游戏

2009-08-14 10:35:25

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-09-24 14:59:38

C#编写COM组件

2024-10-21 16:59:37

C#编程多线程

2009-07-17 10:37:05

C#多线程

2010-02-01 17:25:09

Python多线程

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2011-04-25 14:42:10

C#lock
点赞
收藏

51CTO技术栈公众号