有一个应用程序,负责管理其他应用程序。比如这个应用程序为Main.exe
被这个应用程序管理的有sub01.exe、sub02.exe......sub10.exe
问题是这样的。要通过main.exe来启动subxx.exe当每个subxx.exe要保存处理结果的时候要告知main.exe
也就是说:
假设sub01.exe要将一个客户信息写入数据库。这时他不能直接操作数据库。要把这个用户的信息告知main.exe。然后由main.exe来写入数据库。再由main.exe将处理的结果(存储成功或者失败)告知sub01.exe
这样的问题不知道用什么方法解决。请高手赐教。
小弟愚钝,不知这么问是不是合适。
先谢过了。

解决方案 »

  1.   

    用反射中的Invoke可以做到
    Type[] mytypes = a.GetTypes();
            BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public | 
                BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);        foreach(Type t in mytypes)
            {
                MethodInfo[] mi = t.GetMethods(flags);
                Object obj = Activator.CreateInstance(t);            foreach(MethodInfo m in mi)
                {
                    m.Invoke(obj, null);
                }
            }
      

  2.   

    我给你说一下思路
    你启动Main.exe进程
    然后加载sub01.exe然后用Invoke把参数传递给sub01.exe 就能得到sub01.exe的运行结果了如果你使用多线程技术,需要用委托给你一个MSDN链接看看
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemreflectionmethodbaseclassinvoketopic.htm
      

  3.   

    进程间通信用Remoting或消息,但我还是觉得用多线程可能会更好一些
      

  4.   

    to:epimetheus(阿戈尔) ( 五级(中级)) 信誉:100我给你说一下思路
    你启动Main.exe进程
    然后加载sub01.exe然后用Invoke把参数传递给sub01.exe 就能得到sub01.exe的运行结果了
    -----------------------------------
    invoke可以在进程间调用么?怎么调用?
      

  5.   

    .net remoting 是个好东东啊。 还有人用它做并行计算。
      

  6.   

    对了,还有。那些sub01.exe之流的应用程序。用什么语言不一定的。可能用vc、vb、或者其他的什么。
      

  7.   

    如果sub01.exe等是用vc6等写的非托管程序,这种情况下remoting就不行了根据你说的情况可以采取的方案:
    1.用TCP/IP网络通讯
    2.用COM通讯
    3.其他(比如用共享内存,管道等)