知识大全 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相关参考
在VisualC#中使用XML之编写XML 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在我的上一
VisualC#多线程参数传递浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们在写Rem
C#中构建多线程应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 引言 随着双核四核等多
编写多线程Java应用程序常见问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!几乎所有使用AWT
使用VisualC#.NET创建线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用线程创建Vi
VisualC#编写3D游戏框架示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!你可能对实际地编
VisualC#编程入门之语句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序的活动是通过语
在语言级支持锁定对象和线程间发信使编写线程安全类变得简单本文使用简单的编程示例来说明开发高效的线程安全类是多么有效而直观 Java编程语言为编写多线程应用程序提供强大的语言支持但是编写有用的没有错
C#多线程编程实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题的提出 所谓单个写入程序
知识大全 Visual C#或Visual Basic创建Web应用程序(上)
VisualC#或VisualBasic创建Web应用程序(上) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起