2018年5月12日

任务工厂

摘要: 1 private static void TaskFactoryDemo() 2 { 3 Task taskParent = new Task(() => 4 { 5 //向应该被取消的 System.Threading.CancellationToken 发送信号。 6... 阅读全文

posted @ 2018-05-12 11:21 庭前花满留晚照 阅读(298) 评论(1) 推荐(0) 编辑

使用Parallel计算目录中的文件字节长度

摘要: 1 /// 2 /// 根据通配符和搜索条件计算给定目录中的文件字节长度 3 /// 4 /// 要搜索的目录的相对或绝对路径。 此字符串不区分大小写。 5 /// 要与 path 中的文件名匹配的搜索字符串。 此参数可以包含有效的文本路径和通配符(* 和 ?) 字符(参见“备注”)的组合,但不支持正... 阅读全文

posted @ 2018-05-12 11:21 庭前花满留晚照 阅读(294) 评论(0) 推荐(0) 编辑

定时计算

摘要: 1 internal static class TimerDemo 2 { 3 //提供以指定的时间间隔对线程池线程执行方法的机制 4 private static Timer timer; 5 6 //这个方法签名必须和TimerCallback委托匹配 7 private static void ... 阅读全文

posted @ 2018-05-12 11:21 庭前花满留晚照 阅读(182) 评论(0) 推荐(0) 编辑

使用Task的Wait和Result时注意

摘要: 如果计算限制的任务抛出未处理的异常,该异常会被“吞噬”并存储到一个集合中,而线程池线程可以返回到线程池中。调用Wait方法或者Result属性时,这些成员会抛出一个System.AggregateException对象。 如果一直不调用Wait或Result,或者一直不查询Task的Exceptio 阅读全文

posted @ 2018-05-12 11:20 庭前花满留晚照 阅读(5039) 评论(0) 推荐(1) 编辑

取消任务(Task)

摘要: 1 private static void TaskCancelDemo() 2 { 3 //向应该被取消的 System.Threading.CancellationToken 发送信号 4 CancellationTokenSource cancellationTokenSource = new Canc... 阅读全文

posted @ 2018-05-12 11:20 庭前花满留晚照 阅读(3384) 评论(0) 推荐(0) 编辑

启动新任务和子任务

摘要: 1 private static void StartNewTask() 2 { 3 //创建并启动一个Task 4 Task task = Task.Run(() => TaskTest("TaskTest1")); 5 6 //继续另一个任务 7 /... 阅读全文

posted @ 2018-05-12 11:20 庭前花满留晚照 阅读(425) 评论(0) 推荐(0) 编辑

简单混合锁(HybridLock)

摘要: 1 internal sealed class SimpleHybridLock : IDisposable 2 { 3 //基元用户模式构造使用 4 private int m_waiters = 0; 5 6 //基元内核模式构造 7 private AutoResetEvent m_waiter... 阅读全文

posted @ 2018-05-12 11:18 庭前花满留晚照 阅读(963) 评论(0) 推荐(0) 编辑

为线程安全集合提供阻塞和限制功能

摘要: 1 class Program 2 { 3 //为线程安全集合提供阻塞和限制功能 4 private static BlockingCollection blockingCollection = new BlockingCollection(new ConcurrentQueue()); 5 6 static void... 阅读全文

posted @ 2018-05-12 11:18 庭前花满留晚照 阅读(255) 评论(0) 推荐(0) 编辑

内核模式构造-Mutex构造(RecursiveAutoResetEvent)

摘要: 1 internal sealed class RecursiveAutoResetEvent : IDisposable 2 { 3 private AutoResetEvent m_lock = new AutoResetEvent(true); 4 5 //拥有锁的线程ID 6 private int m_own... 阅读全文

posted @ 2018-05-12 11:17 庭前花满留晚照 阅读(243) 评论(0) 推荐(0) 编辑

内核模式构造-Semaphore构造(WaitLock)

摘要: 1 internal sealed class SimpleWaitLock : IDisposable 2 { 3 //(信号量)允许多个线程并发访问一个资源 4 //如果所有线程以只读方式访问资源则是安全的 5 private Semaphore m_Semaphore; 6 7 public SimpleWaitLock(int maxCon... 阅读全文

posted @ 2018-05-12 11:17 庭前花满留晚照 阅读(415) 评论(0) 推荐(0) 编辑

导航