【发布时间】:2013-04-26 19:10:41
【问题描述】:
我的应用程序中有一个子表单。这个表单有大约 50 多个组合框,每个人都从数据库中获取数据。所有组合框都在表单的加载事件中加载。数据很大。数据检索大约需要 2 分钟。当我打开这个表单时,我的整个应用程序变得没有响应。应用程序挂起,大约 2 分钟后恢复正常:/
正如我所研究的,我们可以使用不同的线程来避免这种情况。有人可以指导,实现多线程以使我的应用程序响应是否可能、安全可靠?
如果可能的话,请指导我并编写一个示例代码,多线程在 c# 中是如何工作的。您可以简单地解释使用具有网格视图的表单,该表单在单独的线程中将数据表作为 daTASOURCE 并且 GUI 响应即使数据库需要太多时间...任何帮助表示赞赏。提前谢谢!
【问题讨论】:
-
您希望进行异步加载,同时努力避免在 GUI 周围出现太多线程。您是否尝试过启动一个简单的线程来为您执行该调用,并在它准备好时通过回调通知您?
-
.NET 中关于线程的最佳教程之一:yoda.arachsys.com/csharp/threads/index.shtml
-
亲爱的鲨鱼,我从来没有实现过多线程。这就是我在这里问的原因。如何实施?实施是否安全?什么时候不应该实施?您能否向我发送一个示例代码,该代码将从数据库中填充数据表,然后在表单的加载事件中分配给 gruidview。甚至数据检索可能需要超过 2 分钟,应用程序应该响应......
-
@user2109843 如果您从未实现过多线程,那么最好的选择是一些书。买本书。
标签: c# multithreading winforms