热情软件屋

 

VC++环境下利用管道和线程实现进程间通信


编号:QA000725
建立日期: 1999年3月30日 最后修改日期:1999年3月30日
所属类别:

文章:

    摘要:Windows95作为一个优先多任务操作系统,其重要特征之一是引入了多进程和多线程机制。其中每个进程都有私有的虚拟地址空间,可以创建多个线程,每个线程被分配一个时间片,且当前执行的线程在其时间片耗尽时挂起,让其他线程运行。由于各时间片很小,所以这时看起来就象是多个线程在同时工作。我们这里将会在子进程Child中产生一个工作线程,它只在后台处理任务,而不会影响程序的使用。
    ----有时用户运行的进程之间毫无关系,但是进程之间信息的交换则能产生协作效果,这样就可以完成某些单个进程所不能完成的任务。Windows95可以使用多种通信手段,包括剪贴板、DDE、OLE,而且还增加了一些新的手段,其中管道是用来在不同程序之间交换信息的另一个新的简便的通信机制。与其它手段不同,管道没有正式的标准或协议来控制信息传递,所以与DDE会话这样的机制相比,管道更易于使用、更加灵活。管道实际上是一段共享内存区,进程把共享消息放在那里。因为管道专用于进程间的通信,所以Win32API提供了一组函数以方便信息交换。
    ----本文我们将在VC++4.1环境下介绍一个父进程和其子进程的通信实例。在父进程Parent窗口中按一下鼠标左键,就会产生一个Pipe和启动子进程Child,并从Pipe一端发送信息,同时Child启动后会创建一个工作线程,专门用来从管道的另一端读入数据。通过父进程菜单项的控制来改变图形形状参数,并传给Child使之在自己的窗口中绘出响应的图形。下面分别就父进程Parent和子进程Child来进行说明。
    链接:http://www2.ccw.com.cn/tips/9901/01304_03.asp

文章来源:计算机世界

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio