关于C#异步通信,谁能给解释下?

hanhanmj 2009-09-18 09:06:50


如题:

1.谁能给解释下 什么是C#异步通信( 概念 )? 异步通信的原理是什么? 异步和同步有什么区别?

2.请教 如何用进程 控制 一个TextBox的值的变化?


期待各位高手解答! (从网上复制粘贴的就不要回复了哈)

...全文
845 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharp2011 2011-06-26
  • 打赏
  • 举报
回复
其实异步就是说你是老大,干活的时候交给小兵去干,你就在那泡茶,小兵干好事情后会找你回报的

同步就是说你是技术骨干,干活的时候要自己去做不放心交给别人

上面两种情形各有优点,缺点
虚空土豆 2011-05-04
  • 打赏
  • 举报
回复
茅舍顿开!!!以前一直模模糊糊中感觉异步的概念 ,现在明白了许多
nokia6300as 2010-06-15
  • 打赏
  • 举报
回复
难懂....
narisu 2010-05-11
  • 打赏
  • 举报
回复
太难懂了吧
ecicewine1 2010-03-30
  • 打赏
  • 举报
回复
大脸的别乱贴了
V68V6 2009-09-18
  • 打赏
  • 举报
回复
紧跟sp1234。。。。
zhongjiekangping 2009-09-18
  • 打赏
  • 举报
回复
丢进邮筒里 很形象

CGabriel 2009-09-18
  • 打赏
  • 举报
回复
1. 异步通信就是把信件丢进邮筒里面就可以了,之后你该干什么的就干什么去。然后若干天后,会有邮差主动把回信送上门,告诉你,回信到了。
同步这是你把信丢进邮筒里面之后,啥也做不了,只能够盯着那个邮筒,直到回信从里面吐出来(hehe,现实中不可能是这样的,类比啦)

2. 跟通信时两码事
wangjiafeng2008 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 limeng315 的回复:]
实际上简单的说,所谓异步,就是指请求方或发起方发出一个通信请求,这时请求方不会等待对方的回复,继续后面的工作。请求的结果由对方在完成了相应的操作后,通过一个回调(callback)的机制,回调请求方的一个方法,以便通知请求方它的请求已经得到了回复。当然回调的方法是请求方在一开始发出请求的时候就已经告诉对方了。
相对同步,情况正好相反,请求方发出通信请求后,会一直等待对方的回复,在收到回复前,不会做任何事情,直到超时或收到回复为止。

[/Quote]
  • 打赏
  • 举报
回复
大多数时候我们说编写通讯程序的方式的时候,异步通讯都是指异步地编写通讯程序,我们写的程序只是作为一个方法片段参与操作系统的通讯程序的并行调度之中,是指从应用层的角度的并行化,而并不是玩底层的通讯概念。
limeng315 2009-09-18
  • 打赏
  • 举报
回复
实际上简单的说,所谓异步,就是指请求方或发起方发出一个通信请求,这时请求方不会等待对方的回复,继续后面的工作。请求的结果由对方在完成了相应的操作后,通过一个回调(callback)的机制,回调请求方的一个方法,以便通知请求方它的请求已经得到了回复。当然回调的方法是请求方在一开始发出请求的时候就已经告诉对方了。
相对同步,情况正好相反,请求方发出通信请求后,会一直等待对方的回复,在收到回复前,不会做任何事情,直到超时或收到回复为止。
  • 打赏
  • 举报
回复
编写异步的通信程序,就是说你首先打开发送机制并发送4000个字节的信息,但是主线程并不循环或者阻塞在那里等着发送完成,而是线程继续执行去干别的事情。等操作系统发送完成这4000个信息,它会回调你的处理方法,你就可以在这个回调方法中继续发送下一个4000个字节的信息,然后就结束了(不需要循环或者阻塞)。等操作系统又发送完,又会回调你的处理程序,你又可以继续发送下一块数据.....直到你发送完最后一块数据,操作系统回调你的程序的时候,你不再发送数据了,可以直接关闭发送机制。

类似这类过程叫做异步地进行通讯编程。跟操作系统底层是不是异步通讯没有关系。通讯程序异步编程是最为简洁和和高效地并行化编程的机制,至于通讯的各个层(例如7层模型的底下基层)如何实现,无关。
hanhanmj 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sp1234 的回复:]

不去回答这个问题了。但是要提醒你,异步通信和编写异步的通信程序是两个概念,不要听见“异步”二字就望文生义,要看清概念。
[/Quote]

小弟 就是因为不理解“异步”的概念,还望指教!!!
  • 打赏
  • 举报
回复
[Quote=引用楼主 hanhanmj 的回复:]
如题:

1.谁能给解释下 什么是C#异步通信( 概念 )? 异步通信的原理是什么? 异步和同步有什么区别?

[/Quote]

不去回答这个问题了。但是要提醒你,异步通信和编写异步的通信程序是两个概念,不要听见“异步”二字就望文生义,要看清概念。
风之影子 2009-09-18
  • 打赏
  • 举报
回复
2.请教 如何用进程 控制 一个TextBox的值的变化?

通过委托调用方法来更新值

如下:

delegate void HandleInterfaceUpdateDelegate(string text);  //委托,此为重点
HandleInterfaceUpdateDelegate interfaceUpdateHandle;


实例化委托:
interfaceUpdateHandle = new HandleInterfaceUpdateDelegate(UpdateTextBox); //实例化委托对象
在委托指定方法

方法更新文本框:
private void UpdateTextBox(string temp)
{
this.TextBox.Text+=temp; }
hanhanmj 2009-09-18
  • 打赏
  • 举报
回复

好像回复的只是使用中应该注意的一些事项噢。。

哪位高手能给些 通俗易懂点的答案?? 或者理解的朋友说说心得。。。
wiki14 2009-09-18
  • 打赏
  • 举报
回复
异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。每个字符开始发送的时间可以是任意的t0 0 1 1 0 1 1 0起始位结束位t每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束
jxshunsheng 2009-09-18
  • 打赏
  • 举报
回复
通过异步委托来更新textbox的值,好像用这个BeginInvoke对象吧
atszpp 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cgabriel 的回复:]
1. 异步通信就是把信件丢进邮筒里面就可以了,之后你该干什么的就干什么去。然后若干天后,会有邮差主动把回信送上门,告诉你,回信到了。
同步这是你把信丢进邮筒里面之后,啥也做不了,只能够盯着那个邮筒,直到回信从里面吐出来(hehe,现实中不可能是这样的,类比啦)

2. 跟通信时两码事
[/Quote]

整个事情的经过就是这样地

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧