我正在对我的应用程序进行压力测试,并编写了一个简单的测试来生成数百个调用方法的线程。下面的代码适用于 1000 个线程和 100 毫秒延迟。
在下面的代码中,当线程数为 2000 且延迟为 100 时,我收到错误无法在 radButtonEmptyThread_Click 的 catch 语句中将“shell32.dll”DLL 加载到内存中
- 我该如何解决?
- 写入的值“Debug.Print(count.ToString());” 总是 1000 - 为什么?
C# 代码
private void radButtonEmptyThread_Click(object sender, EventArgs e)
{
try
{
for (int i = 0; i < int.Parse(radTextBoxWaitThreads.Text); i++)
{
Thread Trd = new Thread(() => EmptyThreadRequest(int.Parse(radTextBoxFloodDelay.Text), i));
Trd.IsBackground = true;
Trd.Start();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
private void EmptyThreadRequest(int delay, int count)
{
try
{
System.Threading.Thread.Sleep(delay);
Debug.Print(count.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}