gpt4 book ai didi

c# - 多个 BackgroundWorker 不会立即开始工作

转载 作者:行者123 更新时间:2023-11-30 21:06:14 36 4
gpt4 key购买 nike

我正在尝试使用 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
}

但是根据完成工作所花费的时间,以及根据 worker 的输出(文本框中的 worker 开始和结束),每个 worker 开始的时间太长了 -

我希望一切都同时运行,但相反,它一次只执行 2-3 个后台工作人员......

关于这个问题有什么想法吗?

最佳答案

Backgroundworkers 在 ThreadPool 之上运行,TP 有意限制线程数。

因为这是一个测试(驱动程序)应用程序,所以更改池的配置没有问题。您可以将最小线程数设置为合理的值。

   ThreadPool.SetMinThreads(20, 20);

关于c# - 多个 BackgroundWorker 不会立即开始工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325407/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com