我相信大家都很熟悉了填充数据到使用Visual Studio中的数据绑定控件的传统方式。该VS创建一个强类型DataSet和调用DataAdapter对窗体加载事件中填充功能,正如下面给出的代码:异步填充强类型数据集
this.applications_infoTableAdapter.Fill(this.bITSS_UIT_dBDataSet_tmpApplication.Applications_info, textBox1.Text);
一切都运行完美,除非有数据的负载从数据库中提取。
当我们在数据库中超过500K元组,和搜索需要在服务器端完成,甚至的SQL Server需要一些时间来恢复数据。在这段时间内,Windows窗体的UI变得无法响应。
对于大量数据的UI仍然没有响应相当长的时间,这是不能接受的。
所以,我的问题是,是否有填充数据的任何异步方式,使用户界面保持响应,我们可能会显示加载动画或其他任何东西,我们希望,给用户。
我希望我已经说清楚了。
那是它? C#4或5对此没有提供什么? –
你误解了一种语言可以做什么。一种语言是一种编码习惯,没有任何行动代码可言。它不能用于改变其他人编写的代码的行为。您可以移动创建表格适配器的代码,并通过System.Threading,WinForms BackgroundWorker或PPL将数据库查询到后台线程。但这与C#提供的内容无关。 –
谢谢你的详细回复。我明白,除非我们编码,否则一种语言无法说明自己。我问的是,有没有什么办法从db中获取数据,同时保持UI线程响应。我知道我们可以使用MultiThreading或BackgroundWorker来完成相同的任务,但我想知道是否有任何解决方法来填充强类型的DS,同时保持UI响应? –