gpt4 book ai didi

c# - 启动一个执行委托(delegate)的新进程

转载 作者:可可西里 更新时间:2023-11-01 12:35:33 37 4
gpt4 key购买 nike

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

我想做的是在单元测试中验证操作系统资源是否在进程退出时被清理。我知道可以使用 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
}

最佳答案

首先,不,没有办法做到这一点。我的过程意味着一个.exe。这不是 Unix,您可以在 Unix 中派生一个作为父进程副本的进程。

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

关于c# - 启动一个执行委托(delegate)的新进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385235/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com