我壓力測試我的應用程序,並編寫了一個簡單的測試,以產生數百個調用方法的線程。 下面的代碼適用於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