如题,比如说在一个dll或exe中触发事件,而另一个可执行程序将函数注册到前面的程序提供的委托中,接收事件,执行事件处理程序?

解决方案 »

  1.   


    1, .NET Remoting (or later WCF)
    2, COM
    1, Synchronization kernel objects (Event, Mutex, ... )
    2, Socket, Named pipe, Mail slot, Message Queue, Windows Message, ...
      

  2.   

    好象socket,named pipe之类都是要建server和client通过网络通信,我现在只想在同一台机子上的两个exe之间触发事件,有没有简单点的办法?
      

  3.   

    如果是form的程序还可以sendmessage postmessage
      

  4.   

    两个程序需要有共同的通信机制:如:Windows的消息机制等等,如果没有相同的机制是不可能的,
      

  5.   

    dll如果有提供事件接口,当然可以把自己定义的事件处理函数注册到委托上.
    exe里的事件不知道,可能得触发系统事件,再进行捕捉.
      

  6.   

    我用.net remoting 试了一下,应该能实现,只是有个疑问,我本来用事件是想解决两个组件之间循环调用的,
            比如a调用b的接口函数,而b也调用a的接口,回循环调用
    现在a仍然调用b的接口,但是b与a通信采用 net remoting 的方式与a通信,通知a去取东西,
    不知是否还有循环调用的问题?
      

  7.   

    回8楼,
    请采用基于事件的回调机制,即将a中的接口注册到b的事件中去,
    当b执行到需要a的接口时,触发事件,回调a的接口.
    Remoting中的通信的基本方式之一.
      

  8.   

    窗体间可以sendmessage postmessage 
    也可以参考remoting,选择上要看具体的需求
      

  9.   

    windows进程间通讯的各种方法
    http://blog.csdn.net/flywithdream/articles/1652491.aspx