博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2009年11月23日

摘要: 如果应用程序在控制用户界面的线程上执行非 UI 处理,则会使应用程序的运行显得缓慢而迟钝,让用户难以忍受。但是长期以来,编写适用于 Windows 的多线程应用程序只限于 C++ 开发人员。现在有了 .NET Framework,您就可以充分利用 C# 中的多线程来控制程序中的指令流,并使 UI 线程独立出来以便用户界面能够迅速响应。本文将向您介绍如何实现这一目标。此外,本文还将讨论多线程的缺陷并提供一个框架来保护并发线程执行的安全。用户不喜欢反应慢的程序。程序反应越慢,就越没有用户会喜欢它。在执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快 阅读全文

posted @ 2009-11-23 15:34 codingsilence 阅读(227) 评论(0) 推荐(0) 编辑

摘要: C#线程相关问题有很多,有多线程的,有单线程的。本文主要讨论C#单线程操作以及与UI控件互交方面的一些注意事项。C#线程在.NET中是一项十分值得探讨的对象。C#是一门支持多线程的语言,因此线程的使用也是比较常见的。由于线程的知识在Win32编程的时候已经说得过多,所以在.Net中很少介绍这部分(可能.Net不觉得这部分是它所特有的)。那么线程相关的问题大致有如下四类(这篇文章只讨论单线程、单线程与UI线程这两方面的问题)。问题一,线程的基本操作,例如:暂停、继续、停止等;问题二,如何向线程传递参数或者从中得到其返回值;问题三,如何使线程所占用的CPU不要老是百分之百;最后一个,也是问题最多的 阅读全文

posted @ 2009-11-23 15:32 codingsilence 阅读(301) 评论(0) 推荐(0) 编辑

摘要: 一. 概述在使用C#进行应用程序设计时,经常会采用多线程的方式进行一些后台任务的工作。对于不同的应用场景,使用的策略也不尽相同。1. 后台循环任务,少量UI更新:例如批量上传文件,并提供进度。这种情况使用BackgroundWorker组件是非常好的选择。2. 耗时的后台任务:这里的耗时任务是指一个时间较长的任务,并且不能精确获取进度,如:调用一个远程WebService接口。这种情况可以开两个线程,一个工作,一个更新UI(不能提供进度,只能显示动画表示系统在运行中)。3. 耗时的UI任务:当工作压力集中在UI响应上时,可以在工作者线程中增加延时,从而让UI线程获得响应时间。整个工作的总体时间 阅读全文

posted @ 2009-11-23 15:30 codingsilence 阅读(268) 评论(0) 推荐(0) 编辑