.NET多线程技术详解(2) 创建、终止线程
来源:互联网 发布:网络奇兵13dm 编辑:程序博客网 时间:2024/04/30 09:11
http://www.iwebtrados.com.cn/post/48.html
System.Threading 命名空间提供支持多线程编程的类和接口,使您可以轻松地执行创建和启动新线程,同步多个线程,挂起线程以及中止线程等任务。
Thread类有几个至关重要的方法,描述如下:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():通常使用该方法来终止一个线程;
Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行;
(1) 创建
若要在 C# 代码中合并线程处理,只需创建一个将在主线程外执行的函数,并让一个新的 Thread 对象指向该函数即可。
System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod); //创建线程实例newThread,其指向anObject对象的AMethod方法
newThread.Start();//启动线程
下面以一个实际运用的例子介绍线程基本操作。此示例目的是将一个大规模的运算置于后台进行。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ThreadStudyw
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread t=new Thread(new ThreadStart(this.s));
t.Start();//如果不以辅助线程执行s函数,窗体将处于等待状态,无法响应请求,待执行完成后方在标签上显示“结束了”
//而以辅助线程后台执行,则直接执行显示“结束了”
label1.Text = "结束了";
}
private void s()
{
for(int i=0;i<100000;i++)
for (int j = 0; j < 1000000; j++)
{
}
}
}
}
(2)终止
正常情况下,当函数执行完,辅助线程自动终止。
也可以调用Abort()方法,终止线程,该方法将引发ThreadAbortException异常。
但Abort 方法不直接导致线程中止,因为目标线程可捕捉 ThreadAbortException 并在 finally 块中执行任意数量的代码。
- .NET多线程技术详解(2) 创建、终止线程
- .NET多线程技术详解(2) 创建、终止线程
- asp.net 创建和终止线程(多线程)
- java线程技术2_线程的创建运行终止
- java线程技术2_线程的创建运行终止
- .NET多线程技术详解(3) 线程状态
- .NET多线程技术详解(4) 线程优先级
- linux多线程简单介绍-线程创建、终止、属性设置、多线程同步技术(互斥量、条件变量、信号量)
- Linux多线程----直接上代码----线程创建、终止(二)
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- Python多线程之线程创建和终止
- 多线程编程-线程的创建和终止
- java线程技术——线程的创建运行终止
- Let me have a try!~
- [附]常用正则表达式
- 在.net中使用事务
- 最大化多文档程序的子窗体
- [附]DataBinder.Eval()的用法
- .NET多线程技术详解(2) 创建、终止线程
- (转)利用JAVA操作EXCEL文件
- 【转载】[一种声音]一个中产阶级丈夫给坚持买房妻子的一封信
- ReportViewer出现"rsclientcontroller is undefined"错误
- (转)诺记3230蓝牙与PC连接拨号上网方法详解
- sql server 数据库包含的对象
- 摘自JavaWorld 一PTC Consultant 发帖( 有助于理解windchill Foundation)
- (转)加密它:用新的高级加密标准(AES)保持你的数据安全
- (转)Kemulator与Eclipse的集成