2010-09-17 158 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測試運行器可能會少得多的工作。