通常认为在编写程序中用到多线程是一个高级的编程任务,容易发生错误。在本月的栏目中,我将在一个Windows窗体应用程序中使用多线程,它具有实际的意义,同时尽量使事情简单。
我的目标是在一个普通的需求描述中用最好的办法讲解多线程;客户仍然比较喜欢使用户交互方式的应用程序。多线程通常和服务器端软件,可扩展性及性能技术联系在一起。 然而,在微软.NET框架中,许多服务器端应用程序都驻留在ASP.NET体系结构中。同样,这些应用程序在逻辑上是单线程的, 因为IIS和ASP.NET在ASP.NET Web Form或Web服务程序中执行了许多或所有的多线程。 在ASP.NET应用程序中你一般可以忽略线程性。 这就是为什么在.NET框架中,多线程更倾向于在客户端使用的一个原因,比如在保证同用户交互的同时而执行一个很长的操作。
线程背景
线程执行代码。它们由操作系统实现,是CPU本身的一种抽象。许多系统都只有一个CPU, 线程是把CPU快速的处理能力分开而执行多个操作的一种方法,使它们看起来好像同步似的。即使一个系统由多个CPU, 但运行的线程一般要比处理器多。
在一个Windows为基础的应用程序中,每一个进程至少要有一个线程,它能够执行机器语言指令。 一旦一个进程的所有线程都中止了,进程本身和它所占用的资源将会被Windows清除。
许多应用程序都被设计为单线程程序,这意味着该程序实现的进程从来不会有超过一个线程在执行,即使在系统中有多个同样的处理在进行。一般一个进程不会关心系统中其他进程的线程的执行。
然而,在单个进程里的所有线程不仅共享虚拟地址空间,而且许多进程级的资源也被共享, 比如文件和窗口句柄等。由于进程资源共享的特征,一个线程必须考虑同一进程中其它线程正在做什么。线程同步是在多线程的进程中保持各线程互不冲突的一门艺术。这也使得多线程比较困难。
最好的方式是只有在需要时才使用多线程,尽量保持事情简单。而且要避免线程同步的情况。在本栏目中,我将向你展示如何为一个普通的客户应用程序做这些事情。
图 文 结 合:http://www.qqread.com/csharp/d396766.html进入讨论组讨论。相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- C#变得越来越臃肿是不可避免的? (7次浏览)
- C#与EXCEL的数据交互(一) (5次浏览)
- C# 3.0新特性之扩展方法 (1次浏览)
- C#调用QTP自动化对象模型的实例 (0次浏览)
- 利用 C# 实现任务栏通知窗口 (0次浏览)
- 深入C#学习系列之不可小瞧的using关键字 (0次浏览)
- 如何用.NET技术在线生成网站LOGO (0次浏览)
- C#实现遗传算法 模拟花朵的进化 (0次浏览)
- c#里的运算符重载 (0次浏览)
- QTP调用自己开发的.net类库 (0次浏览)



