启动一个执行委托的新进程

Ben*_*Ben 12 .net c# windows process

在.NET中是否可以在子进程中执行方法(委托,静态方法,等等)? System.Diagnostics.Process似乎需要一个实际的文件名,这意味着需要一个单独的可执行文件.

我要做的是在单元测试中验证在进程退出时是否清理了OS资源.我知道可以使用CodeDOM或IL生成来创建这样的程序集并执行它,但单元测试的重点是隔离组件,而不是创建复杂性.出于同样的原因,我想完全避免单独的组装.

理想情况下,我会做类似的事情:

public static void CreateCounter()
{
    var counter = new PerformanceCounter("category", "counter", "instance");
    counter.InstanceLifetime = PerformanceCounterInstanceLifetime.Process;
}

[Test]
public void TestResourceDisposal()
{
    // Start child process to execute CreateCounter()
    ...
    // verify the resource is disposed
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ers 6

首先,不,没有办法做到这一点.我处理意味着.exe.这不是Unix,您可以在其中分叉一个父进程副本的进程.

我只是创建一个小的.exe来运行.您是否需要使用不同的性能计数器运行测试?如果它适用于一个,那么它肯定会与它们中的任何一个一起使用吗?