我是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;
}
}