.Net高级编程
文章平均质量分 78
xuqianghit
互联网门外汉
展开
-
P/Invoke
P/Invoke1.P/Invoke是什么?有何作用?2.简单的使用P/Invoke的demo 1.P/Invoke是什么?有何作用?P/Invoke使得C#程序调用非托管的成为可能,例如可以使用P/Invoke来调用win32 api。 2.简单的使用P/Invoke的demo 2.1 使用P/Invoke直接调用win32 api public class Program { /// /// import kernel32.dll //原创 2010-12-21 19:24:00 · 883 阅读 · 0 评论 -
多线程编程之基础篇
<br /><br />1. windows为什么支持线程?<br />2. 线程开销 <br />3. 线程调度和线程优先级<br />4. 前台线程和后台线程<br />5. 线程的Hello World程序 <1>. windows为什么支持线程?<br />早期的windows系统是没有”线程“概念的,整个系统只能运行着一个执行线程,这可能阻塞其他任务的执行,带来极其差的用户体验,基于上述及其操作系统的健壮性,可靠性等,windows引入了“线程”的概念。 线程可以看作是对CPU的虚拟。ndows原创 2011-04-12 21:18:00 · 495 阅读 · 0 评论 -
多线程编程之计算限制型异步操作
<br /><br />1. CLR线程池简介<br />1.1 CLR为什么支持线程池<br />1.2 线程池ThreadPool管理线程 <br />2. 线程执行上下文<br />2.1 线程执行上下文简介<br />2.2 一个简单示例<br />3. 线程池常见应用情景示例<br />3.1 将一个线程添加至线程池中(向线程传递参数) <br />3.2 协作式取消 <br />4. Task简介<br />5. Task编程基础 <br />6. 定时器Timer <1>. CLR线程池原创 2011-04-12 21:19:00 · 488 阅读 · 0 评论 -
多线程编程之计算限制型异步操作(续)
<br /><br />1. CLR线程池简介<br />1.1 CLR为什么支持线程池<br />1.2 线程池ThreadPool管理线程 <br />2. 线程执行上下文<br />2.1 线程执行上下文简介<br />2.2 一个简单示例<br />3. 线程池常见应用情景示例<br />3.1 将一个线程添加至线程池中(向线程传递参数) <br />3.2 协作式取消 <br />4. Task对象 <br />5. Task常见编程情景<br />5.1 创建Task,并启动该Task<原创 2011-04-15 21:27:00 · 998 阅读 · 0 评论 -
如何实现非ui线程更新ui线程?
<br /><br />1. 实现非ui线程更新ui线程的代码<br />2. 编码中出现的一个错误及探究 <1>. 实现非ui线程更新ui线程 <br /> 之前的基本做法是使用Invoke实现,这里采用的是 .net 4.0中的Task来实现,代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.L原创 2011-04-19 20:03:00 · 653 阅读 · 0 评论 -
I/O限制性异步操作
<br /><br />1. CLR异步编程模型<br />2. IO限制性异步操作中异常处理<br />3. 最佳实践 <1>. CLR异步编程模型 <br />.net中基本上包含两种异步编程模式:使用IAsyncResult对象,或者是使用事件的异步操作.这里主要是关于使用IAsyncResult的异步操作. 在。net中存在的大量已有类型能够支持异步编程,一般会提供BeginOperation和EndOperation的匹配方法,在BeginOperation中提供回调函数,在异步操作完成之后被调用原创 2011-04-21 19:30:00 · 637 阅读 · 0 评论 -
基于事件的异步编程模式
<br /><br />上一篇中主要介绍了基于类型IAsyncResult的异步操作,这里将简单的介绍一下基于事件的异步编程模式,在.net中可以使用类BackgroundWorker来实现简单的基于事件的异步编程模式。该类型定义在System.ComponentModel命名空间中,定义如下:<br /> publicclass BackgroundWorker : Component <br />{<br />// 当RunWorkerAsync 方法调用时,将执行DoWrok<br />publice原创 2011-04-21 19:32:00 · 887 阅读 · 0 评论