c# - 在 C# Winforms 中使用多线程的响应式 GUI

标签 c# multithreading winforms

我的申请中有一个子表单。这个表单有大约 50 多个组合框,每个人都从数据库中获取数据。所有组合框都在窗体的加载事件中加载。数据很大。数据检索大约需要 2 分钟。当我打开此表单时,我的整个应用程序变得没有响应。应用程序挂起并在大约 2 分钟后恢复正常:/

正如我所研究的,我们可以使用不同的线程来避免这种情况。有人可以指导,是否可以安全可靠地实现多线程以使我的应用程序响应?

如果可能,请指导我编写示例代码,了解多线程在 C# 中的工作原理。您可以简单地解释使用具有 gridview 的表单,该表单在单独的线程中将数据表作为 daTASOURCE,并且 GUI 是响应的,即使数据库需要太多时间......感谢任何帮助。提前致谢!

最佳答案

看看 BackgroundWorker class .这完全可以做你想做的。您还可以包含进度条之类的内容,以向用户显示数据仍在加载,然后他们才能继续在您的子表单中执行操作。

关于c# - 在 C# Winforms 中使用多线程的响应式 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234735/

相关文章:

c# - 有一种方法可以在 C# 中使用可变参数按引用传递吗?

c# - InternalsVisibleTo 不适用于 MSTest

c# - 加载相关对象时出现异常。 Entity Framework

c# - 如何通过在 C# 中单击按钮将用户控件加载到面板

c# - 在透明像素上使用 DrawString 呈现错误的文本

c# - 如何在 Dapper 中使用 Char 和 VarBinary?

java - JVM 内存使用情况,一个带线程的 JVM 还是四个 JVM 用于我的四个应用程序?

c# - 类成员枚举线程安全吗?

c - 如何在C/Cilk中以线程安全的方式打印?

c# - 缩放以适合在 Winforms 面板 C# 中绘图