代码改变世界

随笔档案-2011年06月

Aggregate Functions - How to handle NULL

2011-06-27 10:38 by wildboar, 184 阅读, 收藏,
摘要: I use the sql scripts above to insert some data into another table, the system show the 'warning' message (inside the red rectangle) to me. I found the 'aggregation function' would eliminate the 'NULL' .For example:count(id), the value you will get is 4, but count(createuser) 阅读全文

Parallel World 5 – Concurrent Collections (1)

2011-06-14 17:01 by wildboar, 368 阅读, 收藏,
摘要: 从本节开始,我们将要重点介绍如何解决并行运算中的哪两个问题。竞态问题其实就是一个共享数据的问题,所以许多资料也干脆把这个问题称为Share Data. 在多线程环境中我们知道很多解决这个问题的方法; .NET Framework 4 提供了System.Collections.Concurrent一个新的命名空间来解决这个问题。 当开发人员在开发并行程序的过程中,需要在多个并行Task之间共享一个... 阅读全文

Parallel World 3 – Parallel Task (2)

2011-06-08 15:18 by wildboar, 294 阅读, 收藏,
摘要: I. 监控Task是否取消1. 监控CancellationToken的IsCancellationRequested属性并抛出System.OperationCanceledException如果IsCancellationRequested是true, 系统需要中断task,释放它所使用的资源,同时要抛出OperationCanceledException,注意如果你在代码中不抛出这个异常,task就不会被正确设置状态;同时最好把CancellationToken做为这个异常的一个参数放到此异常中。 1: if (token.IsCancellationRequested) 2: { 3: 阅读全文

Javascript Tips

2011-06-08 11:41 by wildboar, 153 阅读, 收藏,
摘要: You will encounter the issue below, you could not debug the javascripts, when you use the following systax; You could successfully debug the scripts when you change the scripts to the followings: 阅读全文

Parallel World 4 – Parallel Task (1)

2011-06-03 14:53 by wildboar, 274 阅读, 收藏,
摘要: I. 概述在.NET Framework 4之前,如果我们要使用多核或者多CPU的优势,我们需要使用多线程的方式(大家感兴趣可以参考我的另一篇关于线程方面的文章)。在.NET Framework 4中,微软提供了一个新的命名空间System.Threading.Tasks来实现并行,通常被称为TPL。TPL引入了一种新的基于task的编程模型,我们使用它可以很轻松的实现并行,使开发人员从跟底层的Thread打交道的方式解放出来。但是注意task并没有取代thread, 而实际上task是基于thread的,这一系列文章之后我会写一篇关于二者之间关系的文章。II. 创建和启动Task 1: st 阅读全文

Parallel World 3 – Parallel Loop (3)

2011-06-03 09:38 by wildboar, 564 阅读, 收藏,
摘要: I. 设置Parallel Loop选项我们可以为Parallel Loop设置一个ParallelOptions类的实例来影响Parallel Loop的行为,ParallelOptions有三个PropertiesCancellationToken获得或设置一个CancellationTokenMaxDegreeOfParallelism为一个Parallel Loop设置一个最大并发数,如果这个属性被设置为-1相当于没有为起设置最大并发数TaskScheduler为一个Parallel Loop设置一个task scheduler,如果这个值为null,系统将提供一个默认的task sc 阅读全文

Parallel World 3 – Parallel Loop (2)

2011-06-02 11:15 by wildboar, 388 阅读, 收藏,
摘要: I. Parallel.ForParallel.For共有12个重载的方法,这里不每个都讲,只说一个最基本的,其他的大家可以自己尝试。 第一个参数, fromInclusive它可以是Int32型的也可以是Int64型的,注意它是inclusive的,也就是说它在循环体中会被用到,在顺序循环Refactor到并行循环时要注意这一点。第二个参数, toExclusive它可以是Int32型的也可以是Int64型的,注意它是exclusive的,也就是说它在循环体中不会被用到,在顺序循环Refactor到并行循环时要注意这一点。它们的区别就类似于下述代码中的0和100这两个值:第三个参数就是一个A 阅读全文