应用程序在排序 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] + ", ";
        }
    }

尝试取消选中"调试>异常>托管调试助手"下的ContextSwitchDeadlock

如果程序因为处理时间较长而冻结,则可以考虑在后台线程上进行该处理。 这将使程序的其余部分保持响应。

如果程序由于死锁而冻结,则可以使用 Visual Studio 中的工具来识别发生这种情况的位置。 如果它是可重现的,则在调试器中暂停并查看问题所在。

如果两者都不是,你能分享你正在使用的代码吗?

最新更新