在新进程中运行方法

时间:2013-05-03 19:03:48

标签: c# .net process

是否可以在新的子进程中运行方法?在我的例子中,我可以执行方法Run,它将在新进程中执行私有方法doAction(而不是thread!)

public class MyClass
{
    public void Run()
    {
        //what should I do there to run 'doAction' in new process?
        doAction();

    }

    private void doAction()
    {
        ...
    }
}

1 个答案:

答案 0 :(得分:1)

进程不共享内存,需要它们之间的通信机制。您可以使用多种机制之一:

  1. 文件或数据 - 一个进程写入文件或DB,另一个进程写入 来自并执行基于数据或文件内容的一些方法
  2. 服务主机/客户端 - 使用WCF,.NET Remoting,命名管道或直接 TCP / IP通信机制,其中一个进程承载服务 接口实现和调用进程(客户端)使用 用于序列化和通信呼叫的服务接口的代理 到主机进程 - 如果你想要一个,这是最好的方法 有状态请求/响应交互
  3. 消息队列 - 使用消息 像MSMQ一样排队,其中一个进程向队列发送消息 另一个拿起并执行方法
  4. 我确信还有其他方法,但这是最常用的三种方法。

    我最喜欢的是轻量级服务主机/客户端场景。有几个轻量级实用程序可以让您轻松实现。您可以使用RemotingLite或我自己的RemotingLite扩展程序,它支持名为DuoVia.Net的命名管道。