我正在尝试使用BackgroundWorker
负载测试 Web 服务,代码是:
private void button1_Click(object sender, EventArgs e)
{
CheckWS("11111");
CheckWS("22222");
CheckWS("3344111");
// .. and some more of those, approx 1000
}
public void CheckWS(string sUser)
{
BackgroundWorker bgWork = new BackgroundWorker();
bgWork.DoWork += new DoWorkEventHandler(bgWork_DoWork);
sObject sData = new sObject();
sData.iNum = iCount++;
sData.sId = sUser;
bgWork.RunWorkerAsync(sData);
}
public void bgWork_DoWork(object sender, DoWorkEventArgs e)
{
// Update a textbox that this worker started
...
// Run a web service
...
// Update the textbox as worker ended
}
但是根据完成工作所花费的时间,以及根据工人的输出(文本框中的工人开始和结束),每个工人开始的时间太长了 -
我希望一切都同时运行,但相反,它一次只执行 2-3 个后台工作人员......
关于这个问题的任何想法?