2017年9月23日

使用线程池(5)

摘要: 在线程池中使用等待事件处理器及超时简介当有大量的线程必须处于阻塞状态等待一些多线程事件发信号时,这种方法非常有效。异步操作函数和回调函数在不同的线程上,只有异步操作函数发出信号或者发生超时,被阻塞的回调函数的线程上的操作才会执行。以下是代码实践:using System;using ... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(71) 评论(0) 推荐(0) 编辑

使用线程池(4)

摘要: 实现一个取消选项简介当需要中断线程池上的异步操作时,有三种方法实现异步操作的取消: 1. 轮询来检查CancellationToken.IsCancellationRequested属性; 2. 抛出一个OperationCancelledException异; 3. 注册一个回调函... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(85) 评论(0) 推荐(0) 编辑

使用线程池(3)

摘要: 线程池与并行度简介对比创建500个线程和将500个线程放入线程池中。发现创建500个线程消耗了大量的操作系统资源,消耗的时间段;而把线程放到线程池中节省了内存和线程数,但是执行的时间变长了。以下是代码实践:using System;using System.Diagnostics;u... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(66) 评论(0) 推荐(0) 编辑

使用线程池(2)

摘要: 向线程池中放入异步操作简介使用ThreadPool.QueueUserWorkItem(WaitCallback,Object)将方法排入队列以便执行,并指定包含该方法所用数据的对象。 此方法在有线程池线程变得可用时执行。以下是代码实践:using System;using Syst... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(121) 评论(0) 推荐(0) 编辑

使用线程池(1)

摘要: 在线程池中调用委托为什么要使用线程池?创建线程是昂贵的操作,所以为每个短暂的异步操作创建线程会产生显著的开销。为了解决该问题,有一个常用的方式叫池(pooling)。线程池可以成功的适应于任何需要大量短暂的开销大的资源的情形。注意事项:每个CLR都有一个线程池实例;保持线程中的操作都... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(81) 评论(0) 推荐(0) 编辑

visual studio 2012常用快捷键

摘要: visual studio 2012常用快捷键1.回到上一个光标位置/前进到下一个光标位置1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。2.复制/剪切/删除整行代码1)如果你想复制一整行代码,只需将光标移至... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(259) 评论(0) 推荐(0) 编辑

Dictionary的用法

摘要: Dictionary比HashTable更好用using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Dictio... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(82) 评论(0) 推荐(0) 编辑

C#交互过程中内存释放的方法

摘要: C#交互过程中内存释放的方法C#进行平台调用时总共有三种内存释放方法:1.CoTaskMemFree释放非托管内存 当非托管函数采用COM的内存分配方法CoTaskMemAlloc来分配内存,应该使用该方法来释放内存,该方法也是.net默认的对非托管内存的内存释放方法。 2.dele... 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(693) 评论(0) 推荐(0) 编辑

visual studio 2012 打开内存窗口

摘要: 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(128) 评论(0) 推荐(0) 编辑

人生也有涯,而知也无涯。

摘要: 本着活到老学到老的精神。今天开始学习WPFD的历程了。以前学习Windows Form的感觉,WPF有太多优势了。坚持!加油! 阅读全文

posted @ 2017-09-23 09:55 五月槐花 阅读(103) 评论(0) 推荐(0) 编辑

导航