gpt4 book ai didi

c# - 添加多个条目后列表框挂起

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:38 24 4
gpt4 key购买 nike

我正在使用 .

我简化了我的应用程序,使其只有一个 ListBox 和一个 Button

这是我的按钮点击事件:

private void button1_Click(object sender, EventArgs e)
{
for (long i = 0; i < 66000; i++)
{
listBox1.Items.Add(i.ToString());
listBox1.SelectedIndex = listBox1.Items.Count - 1;
}
}

当我运行我的应用程序并按下按钮时,我看到 ListBox 正在更新,一段时间后(条目 3041 左右发生变化)程序似乎挂起,因为它添加了其余条目完成后,ListBox 将适当刷新。

为什么挂了?处理起来太多了吗?我查看了我的 CPU 使用率,内存似乎没有使用那么多,所以我不确定是什么问题。

最佳答案

您误解了正在发生的事情。您的列表框将在 5 秒后卡住。当 Windows 注意到您没有处理 UI 线程的正常职责时,它就会介入。您的窗口被所谓的“幽灵窗口”替换,以告诉用户您已经精神紧张症并且点击“关闭”按钮等操作不会产生任何效果。

最简单的判断你是否遇到幻影窗口的方法是从它的标题栏,它显示“没有响应”。

它的一个版本会好一些:

    private void button1_Click(object sender, EventArgs e) {
listBox1.BeginUpdate();
for (long i = 0; i < 66000; i++) {
listBox1.Items.Add(i.ToString());
}
listBox1.EndUpdate();
listBox1.SelectedIndex = listBox1.Items.Count - 1;
}

当您做不合理的事情时,您不应该期望 Windows 表现合理。当用户面临这种 UI 灾难时,你也不应该期望他们表现得合理。但他们会让您自己知道。

关于c# - 添加多个条目后列表框挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com