任务Task
摘要:为什么要使用任务? 上一篇博客中提到了线程池ThreadPool,可以调用QueueUserWorkItem方法来发起一次异步的操作。但是这个技术存在许多限制,最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成时获得一个返回值。 为了克服这些限制,微软引入了Task的
阅读全文
线程与线程池
摘要:先了解一个概念,CLR,以前认为CLR就只是一个软件运行的环境,今天发现其实并不是这样。每个.net程序都运行在一个完全独立的CLR实例上,每个CLR都有一个线程池,当然一个进程也可以加载多个CLR。 为什么要使用线程池,即比起直接新建线程的优势在哪里? 线程池其实就是一个存放线程对象的“池子(po
阅读全文