摘要: 今天用.NET的WinForm的DataGridView遇到个问题,DataSource直接绑定到List,如果数据源有更新不重新绑定就不刷新,重新绑定在点击Cell时异常,{索引-1沒有值}.问题原因:DataGridView绑定IList<T>类型的对象时,如果Count=0,在进入编辑模式时就会出现System.IndexOutOfRangeException,而且是在主线程中报错.不知道这是否属于BUG.解决办法:1.private void refreshBinding() { BindingSource bs = new BindingSource(); bs.D... 阅读全文
posted @ 2012-05-21 21:48 bengxia 阅读(475) 评论(0) 推荐(0) 编辑
摘要: “找不到类型{..} 它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。” 确认.svc文件中的<%@ ServiceHost Language="C#" Debug="true" Service="{ServiceName}" CodeBehind="....cs" %>的{ServiceName}是不是跟Web.config中的服务 阅读全文
posted @ 2011-12-28 16:22 bengxia 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 本章讲述的是混合的线程同步模式,首先通过一个简单的例子演示了如何混合使用用户模式和核心模式的同步结构。然后说明了轮转、线程所有制、锁递归的概念。接着列举了几种混合同步结构的实例,并进行了分析比较。本章还讨论了一个非常有意思的问题:单例模式的两次检查加锁情况,给出了正确实现单例模式的方法。然后讲了什么是条件变量模式,以及如何通过使用集合、Task和线程池来避免长时间持有锁。最后简单说明了四个并发集合类。 阅读全文
posted @ 2010-07-02 14:53 bengxia 阅读(830) 评论(1) 推荐(0) 编辑
摘要: 本章讲述了原生的线程同步结构,首先介绍了类库和线程安全性概念,然后对线程同步模式进行了分类:用户模式与核心模式,接着详细说明了这两种同步模式的实现细节,并举例进行了对比。 阅读全文
posted @ 2010-07-01 10:55 bengxia 阅读(487) 评论(0) 推荐(0) 编辑
摘要: How to fix : “.Net Framework Initialization Error -- Unable to find a version of the runtime to run this application.” 阅读全文
posted @ 2010-07-01 09:06 bengxia 阅读(2777) 评论(1) 推荐(0) 编辑
摘要: 本章详细讲述了I/O方向的异步工作如何完成,首先解释了Windows处理同步I/O和异步I/O的内部机制。然后介绍了APM,针对APM的问题还介绍了一个Wintellect的辅助类AsyncEnumerator。接着讲了APM如何处理异常,以及应用程序如何选择线程模型。演示了如何实现一个异步的服务器程序(ASP.NET WEB服务、ASP.NET窗体页面、WCF)。解释了APM还可以用于计算方向的异步操作。接着,重点解释了APM的缺点以及处理办法。然后讲述了I/O请求的优先级,以及如何讲了IAsyncResult APM转换成Task。接着还介绍了一种不太优雅的异步编程模型EAP。最后针对几种异步编程模型进行了比较。 阅读全文
posted @ 2010-06-22 15:28 bengxia 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 本章讲了计算方向的异步操作问题,首先隆重推出了CLR的线程池概念,给线程池的线程划分了两个类别:工作者线程和I/O线程。然后演示了如何简单的使用线程池实现一个多线程计算操作;接着讨论了线程池的线程执行体上下文结构;然后引出了协作式取消模式以解释如何在线程池中取消操作;本章重点讨论了Task,一种使用线程池的更强大易用方法,并演示了如何等待任务完成获得结果,如何取消任务,如何在一个任务完成后自动的开始另外一个任务,如何由一个任务开始子任务。接着分析了Task的实现机制和调度策略,如何利用TaskFactory工厂模式创建任务。本章还讲述了如何使用Parallel LINQ以及它的限制和注意事项;接着还讨论了定时器的作用,比较了FCL提供的几种定时器的差异。之后简单解释了线程池是如何管理线程的。最后讨论了高速缓存行和多处理器环境下需要注意的错误共享(False Sharing)问题。 阅读全文
posted @ 2010-06-09 11:39 bengxia 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 本章讲述了线程的基本知识。首先介绍了Windows的线程概念,CPU的发展趋势,CLR线程与Windows线程直接的关系。然后分析了使用线程的开销,总结了在什么情况下使用线程,使用线程时要注意哪些问题。接着讲解了NUMA的体系结构。讲述了在什么情形下需用使用确定的线程来完成异步计算密集型任务。接着给出了使用线程的理由。重点深入解释了Windows线程的调度机制,线程的优先级以及和线程优先级之间的关联。本章的结尾讲述了选择前台线程和后台线程的条件。最后还推荐了Wintellect Power Threading Library来简化异步编程和线程同步。 阅读全文
posted @ 2010-06-02 15:34 bengxia 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 本章讲了序列化和反序列化的知识,序列化可以讲对象转换成流进行传输或者持久化,在需要的时候通过反序列化在将对象构造出来。首先讲了如何让类型具备序列化的能力,以及如何控制序列化的过程。然后讲了Formatter如何序列化类型实例,如何控制序列化/反序列化的数据,介绍了StreamingContext对象,演示了如何将对象反序列化到不同的类型实例。接着介绍了序列化代理,最后讲了SerializationBinder抽象类可以用来反序列化对象到不同的类型。 阅读全文
posted @ 2010-05-31 15:14 bengxia 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 本章讨论了如何构建可动态扩展的应用程序,以及如何通过反射来获得类型信息,创建类型的实例,动态的访问它们的成员。首先介绍了如何加载程序集以及如何通过反射来扩展应用,然后分析了反射会引起的性能问题以及如何减轻影响,然后介绍了构建插件应用程序的途径,最后讲了如何通过反射来调用类型的成员。 阅读全文
posted @ 2010-05-24 14:45 bengxia 阅读(597) 评论(0) 推荐(0) 编辑
无觅相关文章插件,快速提升流量