我製作了一個程序,用於生成和排序數據,但當我嘗試生成大約1000個數字時,程序會凍結並且不會響應。它也從文件加載數據,但任何大文件都會凍結程序。有沒有辦法解決?當對1000多個數字進行排序時,應用程序凍結
public void generateData(int number)
{
//Clear text boxes and initialize random
Unsorted_Box.Clear();
Sorted_Box.Clear();
Random random = new Random();
dataArray = new int[number];
for (int i = 0; i < number; i++)
{
//Generate random numbers using max and min values, ammount and store in unsorted box
dataArray[i] = random.Next((int)Min_UpDown.Value, (int)Max_UpDown.Value);
Unsorted_Box.Text += dataArray[i] + ", ";
}
}
如果代碼在小號碼上正常工作,可能會出現問題,請嘗試使用調試器檢查代碼,並在發現錯誤時回覆。 – McBooley
該應用程序進入中斷模式,並說這個「附加信息:CLR已經無法從COM上下文0x800ba8轉換到COM上下文0x800c60 60秒,擁有目標上下文/公寓的線程很可能是在執行非抽取等待或處理很長時間的運行操作而不抽取Windows消息... – user5830998
這種情況通常會對性能產生負面影響,甚至可能導致應用程序變得無法響應或內存使用量不斷累積,爲避免此問題,所有單線程公寓(STA)線程應該使用抽取等待原語(如CoWaitForMultipleHandles),並在長時間運行操作期間定期抽取消息。「 – user5830998