我是 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秒),然后将结果存储在 List
我被告知我需要使用回调和锁定机制,但我被卡住了。任何人都可以帮助我吗?我正在使用参数化线程,但我认为我所拥有的是错误的。
我需要一些关于这个的编码帮助。如果您可以根据您的建议修改下面的示例,我将不胜感激...
谢谢桑德拉
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;
}
}