随笔分类 -  .net foundation

.net 基础
摘要:EAP是针对Windows窗体开发提供的方便使用的异步模式,可以在IDE中可视化的设计和使用//TheSystem.Net.WebClientclasssupportstheEvent-basedAsynchronousPatternWebClientwc=newWebClient();//Whenastringcompletesdownloading,theWebClientobjectraisesthe//DownloadStringCompletedeventwhichwillinvokeourProcessStringmethodwc.DownloadStringCompleted+= 阅读全文
posted @ 2011-05-11 08:21 2012 阅读(1059) 评论(1) 推荐(0) 编辑
摘要:概念异步执行计算限制的操作,可以使用线、线程池、Task在多个内核上调度任务,使多个线程并发的工作,从而高效的使用系统资源,同时提升应用程序的吞吐能力。异步I/O操作,允许将任务交由硬件设备处理,期间完全不占用线程和CPU资源,这样系统资源可以高效的使用。I/O操作的结果是由线程池来处理的。Windows中使用I/O完成端口的形式完成异步I/O,<Windows核心编程>有详细描述。执行异步操作是构建高性能、可伸缩应用程序的关键,它允许用非常少的线程执行许多操作,和线程池配合,异步操作允许利用机器的所有CPU。为此,CLR团队提供了一种模式:异步编程模型(Asynchronous 阅读全文
posted @ 2011-05-10 08:38 2012 阅读(2130) 评论(0) 推荐(0) 编辑
摘要:CLR Via C#中一个推荐的库Power Threading,通过了解功能很是强劲,主要是把异步编程的步骤给简化了。以下是学习的过程推荐http://wintellect.com/PowerThreading.aspx 下载Wintellect_Power_Threading_Library_(October 26, 2010).zip,包中Power Threading Overview.pdf 这个是个详细的介绍,不过有的没有更新。AsyncEnumeratorWindowsForms展示了AsyncEnumerator的使用、取消、延时取消、丢弃处理结果TcpServer异步方式实现 阅读全文
posted @ 2011-05-08 14:32 2012 阅读(2781) 评论(0) 推荐(0) 编辑
摘要:同步的目的是防止多个线程访问共享数据的破坏问题,关键点:处理同步是容易出错的通过锁对性能会有影响同一个时刻只允许一个线程写共享资源一些建议避免静态字段共享数据(只读除外)创建的对象在线程之间不传递使用,也不需要同步最好使用值类型,线程操作的是这些类型的拷贝,因此不需要同步用户模式、内核模式基元构造优点缺点例子基元用户模式使用特殊的CPU指令,速度比内核模式快OS不能侦测到线程的阻塞,会多次反复调度易失Volatile construct:Thread.VolatileWriteThread.VolatileReadvolatile互锁构造Interlocked constructSystem. 阅读全文
posted @ 2011-05-07 22:06 2012 阅读(1395) 评论(0) 推荐(0) 编辑
摘要:CLR线程CLR使用的是Windows的线程处理能力,目前的CLR实现一个CLR线程对应于一个Windows线程System.Threading.ThreadSystem.Threading.Threadt=newSystem.Threading.Thread(op=>{Console.WriteLine(op);});t.Start("demo");t.Join();CLR线程池创建和销毁线程是一个昂贵的操作,要耗费大量时间、资源,对性能也有影响。为改善这个情况,CLR包含了代码来管理它的线程池。可将线程池想象成可由你的程序使用的一个线程集合,每个CLR一个线程池, 阅读全文
posted @ 2011-05-06 08:26 2012 阅读(1412) 评论(2) 推荐(0) 编辑
摘要:一般的开发中常用的集合有:列表:List集合:Set字典:Dictionary队列:Queue栈:Stack只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。命名空间引入的.net版本说明集合实例System.Collections1.0普通的集合类、接口等ArrayListBitArrayHashTableQueueSortedListStackSystem.Collections.Specialized1.0特定的强类型集合HybridDictionaryListDictionaryNameValueCollectionOrderedDictionar 阅读全文
posted @ 2011-05-04 17:32 2012 阅读(4228) 评论(1) 推荐(0) 编辑
摘要:.net的基础库提供了4个类别的计时器,使用的时候经常搞混,为了更好的使用这几个计时器,把每个的情况整理如下:类别说明使用场景System.Threading.Timermscorlib (in mscorlib.dll)要在一个线程池上执行定时的(周期性发生的)后台任务是,常用的计时器触发器方法在系统提供的线程池中执行(不是在创建计时器的线程)不更新UI的情况基本都适用System.Windows.Forms.TimerSystem.Windows.Forms.dll构造这个类的一个实例,相当于告诉Windows将一个计时器和调用线程关联(Win32的SetTimer).这个计时器触发时,W 阅读全文
posted @ 2011-05-03 17:25 2012 阅读(2040) 评论(1) 推荐(1) 编辑