我是C#線程領域的新手,想要強調測試特定的服務器方法。 我想以某種方式捕獲運行該進程所需的時間並以某種方式返回。或者,如果服務器返回一條錯誤消息,當我增加併發線程數時...... 也就是說,隨着用戶數量的增加,某種衰減統計量也會出現。我在尋找的東西簡單而有效的...
我會從一個集成測試這樣調用這個過程:集成多線程測試來壓力測試服務器
[Test]
public void StressTest_SomeExpensiveMethod_Approach()
{
int NO_THREADS = 10;
Thread thread = null;
MyClass myC = new MyClass();
for (int i = 0; i < NO_THREADS; i++)
{
thread = new Thread(myC.DoExpensiveWork);
thread.Name = i.ToString();
thread.Priority = ThreadPriority.Highest;
thread.Start();
}
}
我有下面的類MyClass
。這個類包含方法DoExpensiveWork()
。我試圖調用DoExpensiveWork()
爲指定的固定數目的線程(比如10或20,並從那裏斜升) SomeExpensiveMethod(一個昂貴的過程基本上<1秒儘管通常),然後將結果存儲在列表
我有人告訴我需要使用回調和鎖定機制,但我被卡住了。任何人都可以幫助我嗎?我使用參數化的線程,但我認爲我有什麼是錯的。
我需要一點編碼幫助,請使用這個。我將不勝感激,如果你可以用你的建議修改下面的例子...
感謝 桑德拉
public class MyClass
{
public void DoExpensiveWork()
{
ServerClass cs = new ServerClass();
string testData = "sometestdata";
//*** CALL TO METHOD-UNDER-TEST ***//
DateTime startTime = DateTime.Now;
IList<string> response = cs.SomeExpensiveMethod(testData);
DateTime endTime = DateTime.Now;
}
}