在实际的编程中某些任务,执行完成时间可能较长 ,比如打开大文件、连接远程计算机或查询数据库,这个时候可能会导致 UI界面发生长时间未响应,如果你需要在执行某些任务的同时,还要进行UI界面的响应,BackgroundWorker便是最好的选择。
2 基础知识理解
2.1 前言
在进行耗时的操作时(包括I/O密集型操作和计算密集型操作),C#语言有多种多样的并发执行技术。包括多线程,线程池,异步模式和任务等。实现这种前台和后台同时处理的技术中,异步模式运用十分广泛。其中如果访问共享的数据,不得不使用锁定机制来避免潜在错误,如果频繁或大量地创建线程,会产生很大的额外开销。异步模式中实现异步操作的方法有很多,其中最简单也是最安全的一种方法是System.ComponentModel.BackgroundWorker组件。它通过调度器的切换,简化窗体应用程序中,单独线程所运行的耗时任务。此外,BackgroundWorker组件还支持另外的功能:进度事件以及取消消息。本论文中第五章节便对异步模式中最基本的Thread类,和Backgroundworker类进行了比较。
2.2 C#语言环境
C#是微软公司研发的一种面向对象的、运行于.NET Framework之上的高级程序设计语言;是一种简单的、稳定的、安全的、优雅的,由C和C++衍生而来的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#是可用于创建要运行在.NET CLR上的应用程序的语言之一,它从C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。因为C#是近期发展起来的,所以吸取了以往的教训,考虑了其他语言的许多优点,并解决了它们的问题。
使用C#开发应用程序比使用C++简单那,因为其语法比较简单。但是,C#是一种强大的语言,在C++中能完成的任务几乎都能利用C#完成。
C#代码常比C++略长一些。这是因为C#是一种类型安全的语言(与C++不同),在类型之间转换时,必须遵守严格的规则。执行相同的任务时,用C#编写的代码通常比C++编写的代码长,但C#代码更健壮,调试起来也比较简单,.NET始终可以随时跟踪数据的类型。
C#只是用于.MET开发的一种语言,但他是最好的一种语言。C#的优点是,它是唯一彻头彻尾为.NET Framework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。要使用诸如VB.NET的语言尽可能类似于其以前的语言,且仍遵循CLR,就不能完全支持.NET代码库的某些功能,至少需要不常见的语法。但C#能使用.NET Framework代码库提供的每种功能。.NET 的最新版本还对C#语言进行了几次改进,满足了开发人员的要求,使之更加强大。
C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组文度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。
为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。 Backgroundworker对象在多线程任务中的应用(3):http://www.751com.cn/tongxin/lunwen_38188.html