我压力测试我的应用程序,并编写了一个简单的测试,以产生数百个调用方法的线程。 下面的代码适用于1000个线程和100毫秒的延迟。应用程序压力测试错误
在下面当线程数为2000,延迟为100我的错误 无法将“SHELL32.DLL” DLL加载到内存在catch语句radButtonEmptyThread_Click
- 怎么办代码我解决这个问题?
- 写入“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());
}
}
}
但他为什么会得到那个奇怪的SHELL32错误? – Ameen 2013-02-09 22:17:25
@Ameen我猜这是因为操作系统无法一次处理多个线程。 – 2013-02-09 22:19:03
如果我使用任务将不会得到错误 - 那么Ameens非常有效的问题呢? 2.有道理,但这里的解决方案是什么? – user1438082 2013-02-09 22:20:21