摘要: 在Combox中有一系列的选项,其选项的SelectedIndex值对应了相应的枚举值,而这些枚举值会影响着后续的工作模式,所以就想着将Combox的SelectedIndex和枚举值进行双向绑定,代码如下using System;using System.Colle... 阅读全文
posted @ 2013-12-04 09:59 _学而时习之 阅读(527) 评论(1) 推荐(1) 编辑
摘要: 在进行多线程开发时,我们经常会用到Thread.Sleep(timeout_ms)来等待或者腾出时间来让其他线程处理。不过,即使我们把timeout_ms设置为0,Thread.Sleep还是会执行等待操作。这就让人很纳闷了,我明明指定的等待时间是0毫秒,为什么还会执... 阅读全文
posted @ 2013-11-27 13:04 _学而时习之 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 在.NET中,随机数一般是用Random来获取,但是当在多任务的并行化编程时,问题就出现了。因为Random是基于时间作为种子来生成伪随机数的,而如果程序在多核并行时,在同一时间内的多个核中取到的时间是一样的,这样一来,生成的伪随机数就有可能会有一样的。如果业务需求中... 阅读全文
posted @ 2013-11-27 10:37 _学而时习之 阅读(1502) 评论(0) 推荐(0) 编辑
摘要: 在调出VS2012的并发可视化时,弹出异常"Concurrentcy Visualizer无法启动,因为当前正在进行ETW收集",如下图后来查找资料,查了很久,终于在《收集 Windows 事件跟踪 (ETW) 数据》一文中找到线索。按照文中的说法,需要在性能管理器中... 阅读全文
posted @ 2013-11-26 16:26 _学而时习之 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在异步编程时,为了更新界面的数据,经常会用invoke和begininvoke来操作。而这两个方法又必须是基于控件的,所以为了能够调用还必须传一个控件进去。而在基于任务编程时,可以使用TaskScheduler来直接更新数据。下面是代码using System;usi... 阅读全文
posted @ 2013-11-26 10:26 _学而时习之 阅读(534) 评论(1) 推荐(0) 编辑
摘要: 现在电脑大多数是多核的,比如我的电脑是宏基的,下面是驱动精灵硬件检测的结果。我们可以看到,硬件概要中显示CPU是双核的,现在我们再看看CPU(处理器)的具体信息。同样是使用驱动精灵检测结果。这时我们会看到,核心/线程部分显示的是双核、四线程。那么这里的四线程又是什么意... 阅读全文
posted @ 2013-11-23 09:13 _学而时习之 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 在串行编程时,操作都是按顺序执行的,比如数字从1到100000递增,就必然的是1、2、3、4……100000。代码如下for (int i = 1; i Console.WriteLine(i));很明显,最大的数100000在前面就已经输出了,如果执行多次,会看到这... 阅读全文
posted @ 2013-11-22 15:21 _学而时习之 阅读(226) 评论(0) 推荐(0) 编辑
摘要: .NET4.0增加了并行处理功能,在进行并行调试时,需要调出并行调试窗进行跟踪查看,可是按照>一书中说的Debug-Windows->Parallel Tasks,根本没有找到并行调试窗,如下图。这是为什么呢?看着>一书中明明是可以调用的,思考了一会儿之后,想着会不会... 阅读全文
posted @ 2013-11-20 10:36 _学而时习之 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 有时需要使用匿名对象存储数据,而有时需要使用dynamic去提取数据,这里写了一个简单的示例,代码如下static void Main(string[] args) { List datas = new List(); ... 阅读全文
posted @ 2013-11-18 17:58 _学而时习之 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 项目中有一部分需要用到8位不重复的随机整数,即有1到99999999种可能,即1亿个可能。这可是一个不小的数据量。那要怎么去实现呢?1、尝试使用Access在看到这个需求时,第一反应就是使用数据库。但是客户又要求不能使用SQL等数据库,于是又换了个思路,既然不能使用S... 阅读全文
posted @ 2013-10-12 15:47 _学而时习之 阅读(760) 评论(0) 推荐(0) 编辑