知识大全 Visual C#中编写多线程程序之起步
Posted 知
篇首语:眼前多少难甘事,自古男儿当自强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Visual C#中编写多线程程序之起步相关的知识,希望对你有一定的参考价值。
Visual C#中编写多线程程序之起步 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
net将关于多线程的功能定义在System Threading名字空间中 因此 要使用多线程 必须先声明引用此名字空间(using System Threading;)
即使你没有编写多线程应用程序的经验 也可能听说过 启动线程 杀死线程 这些词 其实除了这两个外 涉及多线程方面的还有诸如 暂停线程 优先级 挂起线程 恢复线程 等等 下面将一个一个的解释
a 启动线程
顾名思义 启动线程 就是新建并启动一个线程的意思 如下代码可实现
Thread thread = new Thread(new ThreadStart( Count));
其中的 Count 是将要被新线程执行的函数
b 杀死线程
杀死线程 就是将一线程斩草除根 为了不白费力气 在杀死一个线程前最好先判断它是否还活着(通过 IsAlive 属性) 然后就可以调用 Abort 方法来杀死此线程
c 暂停线程
它的意思就是让一个正在运行的线程休眠一段时间 如 thread Sleep( ); 就是让线程休眠 秒钟
d 优先级
这个用不着解释了 Thread类中有一个ThreadPriority属性 它用来设置优先级 但不能保证操作系统会接受该优先级 一个线程的优先级可 分为 种 Normal AboveNormal BelowNormal Highest Lowest 具体实现例子如下:
thread Priority = ThreadPriority Highest;
e 挂起线程
Thread类的Suspend方法用来挂起线程 知道调用Resume 此线程才可以继续执行 如果线程已经挂起 那就不会起作用
if (thread ThreadState = ThreadState Running) thread Suspend();
f 恢复线程
用来恢复已经挂起的线程 以让它继续执行 如果线程没挂起 也不会起作用
if (thread ThreadState = ThreadState Suspended) thread Resume();
下面将列出一个例子 以说明简单的线程处理功能 此例子来自于帮助文档
using System; using System Threading; // Simple threading scenario: Start a static method running // on a second thread public class ThreadExample // The ThreadProc method is called when the thread starts // It loops ten times writing to the console and yielding // the rest of its time slice each time and then ends public static void ThreadProc() for (int i = ; i < ; i++) Console WriteLine( ThreadProc: i); // Yield the rest of the time slice Thread Sleep( ); public static void Main() Console WriteLine( Main thread: Start a second thread ); // The constructor for the Thread class requires a ThreadStart // delegate that represents the method to be executed on the // thread C# simplifies the creation of this delegate Thread t = new Thread(new ThreadStart(ThreadProc)); // Start ThreadProc On a uniprocessor the thread does not get // any processor time until the main thread yields Unment // the Thread Sleep that follows t Start() to see the difference t Start(); //Thread Sleep( ); for (int i = ; i < ; i++) Console WriteLine( Main thread: Do some work ); Thread Sleep( ); Console WriteLine( Main thread: Call Join() to wait until ThreadProc ends ); t Join(); Console WriteLine( Main thread: ThreadProc Join has returned Press Enter to end program ); Console ReadLine();
此代码产生的输出类似如下内容
cha138/Article/program/net/201311/14673相关参考