Запустить новый процесс, который выполняет делегат

Возможно ли в .NET выполнить метод (делегат, статический метод, что угодно) в дочернем процессе? 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
}
12
задан John Saunders 22 March 2011 в 00:15
поделиться