2010-09-17 128 views
1

我有一个脚本执行引擎,其中最终用户编写脚本来运行他们的测试。现在我们要并行运行大约40个测试。我想知道是否应该将所有脚本(以Perl或VBA)转换为C#代码,然后将其并行化或尝试从C#控制脚本引擎以并行运行所有这些脚本?任何建议或想法都会有所帮助。 我仍然使用脚本时发现的一个优点是最终用户将能够编写他们自己的测试代码,而不是像C#中那样对我进行任何更改。并行测试运行

也有可能跨多台PC并行运行代码并使用C#从一台主控PC进行控制? 我是C#并行编程的新手。

回答

1

一切皆有可能!这是时间和精力以及正确方法的问题。并行编程是C#4.0中的一个新范例,用于在同一个AppDomain中并行运行任务(与进程几乎相同,但并非总是如此,因为有时每个进程可能有多个AppDomain)。所以你不能在使用并行编程的几台机器上运行它,但是你可以实现你的迷你GRID计算在几台机器上运行它。

如果你的测试可以并行运行 - 看起来它们可以 - 你可以用几行代码并行运行它们。

// not a real code 
foreach(Test t in myTetsts.AsParallel()) 
{ 
    t.run(); 
} 
+0

这是唯一一次我会建议C++超过其他语言 - 并行编程。^_ ^ – Bob 2010-09-17 12:46:06

0

我假设您希望并行运行测试以使用所有CPU并加速测试。

如果测试是独立的,为什么不把测试分成4组,每组10个测试,然后同时运行4个测试执行程序。这将为您提供4个流程,这些流程将分散在您的CPU中。

不如在线程级别控制它,但写一个批处理文件来启动4测试运行器可能会少得多的工作。