FCL小应用系列-----------如何利用APM实现HttpWebRequest异步发送接收
来源:互联网 发布:js用for循环写乘法表 编辑:程序博客网 时间:2024/04/29 17:27
APM(异步编程模型)在.net编程中随处可见,HttpWebRequest类也实现了APM,可供用户使用。今天做了一个小实验,总结一下。还是先看代码吧。
其实APM使用起来相当简单直观。大概步骤如下:
(1)调用HttpWebRequest.BeginXXX(AsyncCallback callback, object state)
此函数发起异步调用,并把这个代表这个异步操作的IAsyncResult对象引用自动作为callback回调函数的实参传递,state则赋值给IAsyncResult对象的AsyncState成员。
(2)在回调函数里调用HttpWebRequest.EndXXX(ir),完成响应读取。
在APM模型里,其实回调函数是在等待的操作完成之后由CLR自动开启新线程执行的。
另外需要注意的是,对于同一个HttpWebRequest对象,不能同时进行混合使用同步和异步方法,BeginGetRequestStream()和BeginGetResponse()必须同时使用,不能把GetRequestStream()和BeginGetResponse()混合使用。也就是说一个特定的HttpWebRequest对象,要么执行异步操作,要么执行同步操作,不能混合同步和异步函数。实际上以首先调用的函数为准,如果先调用同步函数,即使以后调用异步函数,还是会按照同步方式执行。
- FCL小应用系列-----------如何利用APM实现HttpWebRequest异步发送接收
- FCL小应用系列-----------如何实现托盘图标显示
- FCL小应用系列-----------如何实现URLEncoded编码与解码
- FCL小应用系列-----------如何操纵cookies
- FCL小应用系列---------------------如何利用VS增加图标等资源?
- FCL小应用系列------------如何获取网卡等硬件信息
- FCL小应用系列-----------如何判断文件是否存在?
- FCL小应用系列-----------如何使得程序只能有一个实例运行?
- FCL小应用系列-----------分析List的Remove(T)方法
- HttpWebRequest发送接收
- 如何发送和接收应用层数据包?
- 如何发送和接收应用层数据包?
- Tcp异步接收发送
- ajax实现异步刷新,并通过json接收发送数据!
- C# Scoket异步通讯实现(发送数据、接收数据)
- windows下使用WSAEVENTSELECT实现同步发送异步接收
- 应用HttpWebRequest接收post或get数据
- Socket异步发送接收,Windows
- Windows 2003邮件服务器配置指南(图)
- C++做一个真正动态链接的DLL的做法
- JSON 入门指南
- Overlapped I/O 重叠I/O模型Client——》Server
- 使用 Winmail Server 轻松架设邮件服务器
- FCL小应用系列-----------如何利用APM实现HttpWebRequest异步发送接收
- wap2.0
- hdu1864 搜索版本
- Linux应用程序安装与管理
- 奥赛罗游戏
- 年轻时应该养成的十大好习惯
- 人生舞台与理想
- JAVA操作XML的完整例子——W3C DOM篇
- java中四种操作xml方式的比较