gpt4 book ai didi

c# - GUI 处理数据的速度不够快,大约 10 秒内无法使用

转载 作者:行者123 更新时间:2023-11-30 12:55:21 26 4
gpt4 key购买 nike

有人可以帮帮我吗?我的 GUI 有问题。这会过快地接收过多数据,以至于事件处理程序会完全阻塞 GUI 以供用户输入。

后台程序用于向 GUI 发送解决方案(作为文本),但 GUI 处理数据的速度不够快(40 毫秒内 72000 个字符)并且在大约 10 秒内无法使用。

这会调用后台程序:

SolveDelegate solve = Solve;
solve.BeginInvoke(null, null);

接收器看起来像这样:

private delegate void AppendTextDelegate(string text);

private void AppendText(string text)
{
if (GUITextBox.InvokeRequired)
{
BeginInvoke((AppendTextDelegate)AppendText, new object[] { text });
// Thread.Sleep(5); // <= I don't like it at all.
}
else
GUITextBox.appendText(text);
}

private void GUI_TextReached(object sender, TextReachedEventArgs e) => AppendText(e.Text);

使用 Thread.Sleep(5) 我可以防止我的 PC 被封锁。但在我看来,这个解决方案并不是一个好的解决方案。是否可以确定事件的优先级或在单独的线程中运行 TextBox,以便 GUI 始终保持可操作?我四处寻找,但还没有找到任何有用的信息。

最佳答案

我会说您正在解决错误的问题 - 您正试图将太多数据加载到您的用户界面中。 72000 个字符可能是几千个列表条目,这不能为用户提供良好的体验。

我建议您尝试通过提供过滤器(日期等)或如果捕获数据,通过使用先前捕获的值来过滤到仅可用的子集,从而将要加载的 UI 数据过滤到 < 100 个项目下一个控件。

如果将数据加载到网格中,您可能需要显示更多数据,但良好的网格通常会提供有效的方式来加载数据 - 您使用的是什么网格?

关于c# - GUI 处理数据的速度不够快,大约 10 秒内无法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981204/

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