2013-03-01 125 views
0

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

回答