社区
VB
帖子详情
求AsyncCallBack的使用说明
半支烟z
2007-06-20 01:25:45
在做TCP Socket异步的程序的时候
使用了AsyncCallBack 的方面知识,可是我还是不能很好的理解
其中一句是:
接受一个AsycCallBack对虾哪个,封装回调方法,并且于Socket网络操作完成之后,返回IAsyncResult接口对象
我不能很好的理解
...全文
334
2
打赏
收藏
求AsyncCallBack的使用说明
在做TCP Socket异步的程序的时候 使用了AsyncCallBack 的方面知识,可是我还是不能很好的理解 其中一句是: 接受一个AsycCallBack对虾哪个,封装回调方法,并且于Socket网络操作完成之后,返回IAsyncResult接口对象 我不能很好的理解
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wzuomin
2007-06-20
打赏
举报
回复
简单地说,同步即程序执行一个方法,等该方法返回之后,继续往下走
异步:即程序调用一个方法后立即返回。
等待高手作答。呵呵
wzuomin
2007-06-20
打赏
举报
回复
AsycCallBack我也讲不清楚,这儿有篇文章介绍vb.net下的Socket异步通讯的例子
http://track.cnblogs.com/archive/2005/09/26/244673.aspx
异步调用04-执行回调方法-C#
如果启动异步调用的线程是不需要处理结果的线程,则可以在调用完成时执行回调方法。回调方法在线程池线程上执行。 若要
使用
回调方法,必须将引用回调方法的
Async
Callback
委托传递给BeginInvoke。也可以传递包含回调方法将要
使用
的信息的对象。例如,可以传递启动调用时曾
使用
的委托,以便回调方法能够调用EndInvoke方法。 下面的代码
说明
了如何
使用
这种方法来进行异步调用,并获得异步方法的结果:
使用
异步方式调用同步方法(实例详解)
说明
: .NET Compact Framework 中不支持异步委托调用,也就是 BeginInvoke 和 EndInvoke 方法。 BeginInvoke 方法启动异步调用。该方法与您需要异步执行的方法具有相同的参数,还有另外两个可选参数。第一个参数是一个
Async
Callback
委托,该委托引用在异步调用完成时要调用的方法。第二个参数是一个用户定义的对象,该对象将信息传入回调方法。BeginInvoke 会立即返回,而不等待异步调用完成。BeginInvoke 返回一个可用于监视异步调用进度的 I
Async
Result。 EndInvoke 方法检索异步调用的结果。在调用 Beg
zookeeper-watcher-demo:动物园管理员 wather 演示
zookeeper-watcher-demo zookeeper wather demo 示例
说明
:zookeeper server端,client端每100毫秒写入数据,另一个client端watch节点数据变化 监听的结果是得到的数值是连续的、和数据生成端是一致的,并没有出现数值跳跃的情况。 结论:只要实现Watcher,
Async
Callback
.Stat
Callback
2 个类的方法。节点值变化zookeeper会触发这2个回调函数。所以只要在一开始exists的watcher设定为自己(this)。然后wait()就可以了。 Example: zookeeper server terminal, client terminal every 100 milliseconds to write data, another client client watch node data
ASP.NET实现comet的聊天交互功能
说明
: 一、概念 借用横刀天笑的解释这个Comet概念:“像彗星那样拖着长长的尾巴的http长连接”。事实上大家都知道,http是不可以与服务器持久连接的,要是每个请
求
都与服务器持久连接的话,那服务器早就宕掉了,就像前段时间像博客园连接数超过2000就出来了Service Unavailable一样。。 就像网上的解释: step 1.向服务器发出请
求
step 2.服务器端查看是否有数据 step 3.如果有数据,则向客户端发送数据,结束该请
求
,返回Step1 step 4.如果没有数据,等待,直到有数据出现,进入step 3 通过以上几步可以看出,客户端与服务器是始终维持着一个连接的,这样看起来,就像客户端与服务器端始终有一个没有关闭的连接一样。也就是他们说的"HTTP长连接". 二、基于ASP.NET和jQuery的Comet实现 其实jQuery只是一个手段,这里用到它的Ajax部分,用于向服务器端发送请
求
。在我的源码中,就是用于负责向服务器端发送两个请
求
:1、发送数据 2、发送等待请
求
(当服务器有数据时该请
求
会返回后再次发送) 至于服务器端,如何实现判断服务器有数据便返回,没有数据便等待的功能呢?Google一下,可以知道ASP.NET实现异步处理的话,实现IHttp
Async
Handler接口就可以了。该接口的BeginProcessRequest(HttpContext context,
Async
Callback
cb, object extraData)方法返回一个I
Async
Result对象。当不调用其参数cb的回调函数时,该请
求
不会结束。 故我们可以在该方法中做一下文章,用一个单例模式实现的消息处理类Messages将所有请
求
的I
Async
Result对象保存起来,这样便可以知道有多少个客户端发送了请
求
,同时也可以遍历所有的I
Async
Result对象,实现向其客户端主动发送数据的功能。 上面说了,jQuery会发送两个请
求
,第二个就是一个“等待请
求
”,当服务器端主动发送了数据到客户端时,该请
求
便能够收到服务器发送的数据。这样便完成了一次服务器向客户端主动发送数据。再次建立等待请
求
,重复循环,实现“长连接”。
网页页面图片批量下载
运行环境 .NET Framework2.0 开发工具 Microsoft Visual Studio 2005 二. 部分代码
说明
(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的图片链接开始下载。下载成功的均在List框链接前面划上了√ ,未能下载的图片有可能是分析错误或者是下载异常。 1. 异步分析部分代码 /// /// 异步分析下载 /// private void
Async
AnalyzeAndDownload(string url, string savePath) { this.uriString = url; this.savePath = savePath; #region 分析计时开始 count = 0; count1 = 0; freq = 0; result = 0; QueryPerformanceFrequency(ref freq); QueryPerformanceCounter(ref count); #endregion using (WebClient wClient = new WebClient()) { AutoResetEvent waiter = new AutoResetEvent(false); wClient.Credentials = CredentialCache.DefaultCredentials; wClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(
Async
URIAnalyze); wClient.DownloadData
Async
(new Uri(uriString), waiter); //waiter.WaitOne(); //阻止当前线程,直到收到信号 } } /// /// 异步分析 /// protected void
Async
URIAnalyze(Object sender, DownloadDataCompletedEventArgs e) { AutoResetEvent waiter = (AutoResetEvent)e.UserState; try { if (!e.Cancelled && e.Error == null) { string dnDir = string.Empty; string domainName = string.Empty; string uri = uriString; //获得域名 http://www.sina.com/ Match match = Regex.Match(uri, @"((http(s)?://)?)+[\w-.]+[^/]");//, RegexOptions.IgnoreCase domainName = match.Value; //获得域名最深层目录 http://www.sina.com/mail/ if (domainName.Equals(uri
VB
16,554
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章