摘要: C#笔记22:多线程之停止或取消线程1:为什么不建议使用Abort取消2:如何是正确的取消3:FRAMEWORK4中的取消1:为什么不建议使用Abort取消 来看下面的代码:using (FileStream fs = File.Open(myDataFile, FileMode.Open, ... 阅读全文
posted @ 2010-09-17 15:55 陆敏技 阅读(8034) 评论(2) 推荐(0)
摘要: C#笔记21:多线程之线程同步中的锁定lock、Monitor1:什么是锁2:如何选择锁定对象3:如何锁定集合4:Monitor1:什么是锁 lock 语句可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。2:如何选择锁定对象 提供给 lock 关键字的参数必须为基于引用类型的对象,该对象用来定义锁的范围。在上面的示例中,锁的范围限定为此函数,因为函数外不存在任何对对象 lockThis 的引用。如果确实存在此类引用,锁的范围将扩展到该对象。严格地说,提供的对象只是用来唯一地标识由多个线程共享的资源,所以它可以是任意类实例。然而,实际上,此 阅读全文
posted @ 2010-09-17 15:39 陆敏技 阅读(7387) 评论(0) 推荐(0)
摘要: C#笔记20:多线程之线程同步中的信号量AutoResetEvent和ManualResetEvent本章概要:1:终止状态和非终止状态2:AutoResetEvent和ManualResetEvent的区别3:WaitHandle.WaitOne()等1:终止状态和非终止状态 首先说说线程的终止状态和非终止状态。AutoResetEvent和ManualResetEvent的构造函数中,都有bool变量来指明线程的终止状态和非终止状态。true表示终止状态,false表示非终止状态。看代码片段1:代码片段1: AutoResetEvent _autoResetEvent = ... 阅读全文
posted @ 2010-09-17 15:24 陆敏技 阅读(9165) 评论(4) 推荐(1)
摘要: C#笔记19:多线程之线程启动、参数、返回值本章概要: 1:如何新起线程 2:Thread传参数及取得返回值 3:IsBackground 4:异步调用中的参数和返回值 1:如何新起线程 新起一个线程的方法,可以使用Thread,BackgroundWorker ,ThreadPool,控件.BeginInvoke,委托.BeginInvoke,Timer。 创建多线程处理应用程序的最可靠方法是使用 BackgroundWorker 组件。但是,当你需要对线程进行精细控制的时候,就需要Thread。总体来说,各种方法各有各的优点,在这里不做细说。 备注:严格意义上,异步不是新线程。2:Th.. 阅读全文
posted @ 2010-09-17 15:01 陆敏技 阅读(20773) 评论(3) 推荐(3)
Web Counter
Coupon for Contacts