当前位置:编程学习 > C#/ASP.NET >>

求高手解释:不要通过共享内存来通信,而是通过通信来共享内存

--------------------编程问答-------------------- WM_COPYDATA了解吗? --------------------编程问答-------------------- 前半句是多线程/多进程通信的一种方式
后半句我也看不懂了 --------------------编程问答-------------------- 两个说的一个内容,谁也离不开水 --------------------编程问答-------------------- 我来解释一下看看对不对
“不要通过共享内存来通信”
——假若以共享内存来代替进程间的通信,一个读一个写,读的进程可能会采取计时器等方式来读取共享内存的内容,但是读的进程无法确定写的进程已经写入完毕还是正在写入,假如正在写入,那么就有可能读到不完整的或者错误的数据。
“通过通信来共享内存”
——为了防止共享内存读写的这种同步问题出现,读的进程不应该采取计时器的方式,而是写的进程写入共享内存的前后,通过窗体消息或者管道或者socket等方式向写的进程分别发送写前和写后的简单的通知消息,读的进程收到消息后,再去读取,并回发读前和读后的消息,以通知写进程什么时候可以写入。 --------------------编程问答-------------------- 换言之就是视目的而定,假若要通信,就采取通信的方式,而不要采取共享内存这种方式;
假若要共享内存,那么必须以通信的方式来防止同步问题发生。
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,