我制作了一个程序,用于生成和排序数据,但当我尝试生成大约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