我下载了一个简单的Tcp异步聊天室的例子,里面的代码差不多是这样:{
someDelegate d=new someDelegate(...);
IAsyncReuslt r=d.BeginInvoke(...);
while(!r.IsComplete){
thread.sleep(250);
}
d.EndInvoke(...);
}
我想问一下,实际写代码时beginInvoke和EndInvoke是在同一个代码块中的么?还有,这个聊天室服务器,来一个Client就开一个线程,这样好不好?小型通信程序和大型通信程序是不是都这样做?
someDelegate d=new someDelegate(...);
IAsyncReuslt r=d.BeginInvoke(...);
while(!r.IsComplete){
thread.sleep(250);
}
d.EndInvoke(...);
}
我想问一下,实际写代码时beginInvoke和EndInvoke是在同一个代码块中的么?还有,这个聊天室服务器,来一个Client就开一个线程,这样好不好?小型通信程序和大型通信程序是不是都这样做?
解决方案 »
- 各位大虾求教,至于你来不来,我反正来了
- asp.net 实现仿百度搜索功能,并且数据来源于百度,怎么实现?
- 如何获取自定义环境变量的值?
- 谁做过获取空间两条线最短距离的啊?
- 求助!能不能帮忙把下面几小段Delphi语句转换成C#语句? 分不够可以再给.
- 比较深刻的 随机数 Random 问题
- (在线等,有正确答案马上揭帖!)关于执行SQL(SELECT),把返回结果集放到多维数组的问题!
- 《asp.net web站点高级编程-提出问题-设计方案-解决方案》对表的操作全是存储过程,各路高手分析一下这样做的好处?
- wpf取消按钮鼠标悬停样式
- 新手求救,关于VS2017项目属性的问题
- 水晶报表 页面设置为横向时页数多出一倍,而县奇数页为空的
- C# 如何在点击ok前获取调色板选择的颜色
gateWay.SendMessage(message, callback);这就发完了。而callback则可能是public void callback(ReceiveInfo data)
{
.....
}当有信息返回来的时候,才开始进行处理。而这个代码跟Send时的代码往往不是在一个线程上的。程序一旦执行完SendMessage语句,然后就“该干什么还干什么去”,而根本不会进行信号量阻塞,更谈不上弄个while循环啦。