.NET多线程技术详解(2) 创建、终止线程
来源:互联网 发布:wamp mysql 初始密码 编辑:程序博客网 时间:2024/04/29 05:13
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 块中执行任意数量的代码。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ljc_zy/archive/2009/07/24/4378360.aspx
- .NET多线程技术详解(2) 创建、终止线程
- .NET多线程技术详解(2) 创建、终止线程
- asp.net 创建和终止线程(多线程)
- java线程技术2_线程的创建运行终止
- java线程技术2_线程的创建运行终止
- .NET多线程技术详解(3) 线程状态
- .NET多线程技术详解(4) 线程优先级
- linux多线程简单介绍-线程创建、终止、属性设置、多线程同步技术(互斥量、条件变量、信号量)
- Linux多线程----直接上代码----线程创建、终止(二)
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- 多线程编程-线程的创建和终止
- Python多线程之线程创建和终止
- 多线程编程-线程的创建和终止
- java线程技术——线程的创建运行终止
- hibernate clob/blob的处理
- gfg
- 2009年7月26日
- 回溯与递归算法的区别
- 如何快速编译系统(用鼠标操作)
- .NET多线程技术详解(2) 创建、终止线程
- Head First C# 中文版 第13章 控件和图形 page581
- FZU数据结构精品课程 2.1 选举问题
- Carbide c++ 快捷键
- [鬼谷子]言论精解
- 改谭浩强教授《C程序设计题解与上机指导(第二版)》习题10.3
- BOF或EOF有一个是真,或者当前记录已被删除
- linux下监控工具介绍
- setjmp 与 longjmp