.net读取大量数据库信息假死

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:57:20
读取大量的数据库信息以后.页面假死.等东西都加载进来以后就又好了.
大家说下关于多线程的事情.怎么去创建一个线程吧
-------------
大家在说下还有什么好的见解.我就是一次输出很多条数据.读取显示的时候就会卡死现象.我现在就是要解决这个先现象.大家都说下.
----------
大家说下.我使用多线程还有一个问题.就是同步问题.大家说怎么解决.net 就是说如果使用后台线程进行操作的话.主线程怎么检测后台线程的结束.分多的是.大家来说啊
---------
我作的就是一个不分页的效果.嘿嘿.所以还是大家怎么回答解决假死现象吧.
-----------
很多人回答都不错.不知道给谁了.大家来说下.

页面假死,可能是浏览器的问题吧,浏览器处理大量数据也需要时间
------------------------------
创建多线程
http://msdn.microsoft.com/zh-cn/library/95hbf2ta.aspx
传入参数到子线程、从子线程传出参数
http://msdn.microsoft.com/zh-cn/library/wkays279.aspx
-------------------
Thread 的.Join()可使子线程把任务做完了才继续主线程
----------------------------------

首先,引入名称空间 using System.Threading;

然后在你想要调用大数据的地方创建线程

Thread td = new Thread(new ThreadStart(getData));
td.IsBackground = false;
td.Start();

其中 getData 就是读取数据的方法名

当然啦,因为多线程是没有返回值的,所以你获取数据后处理数据的函数也要在线程里面一并做了。
这其中如果你想要把返回的数据显示在页面上的表格之类的控件上的话,会出现跨线程操作错误,这时候你需要进行跨线程操作处理。

最简单的方法是在Load事件中写 CheckForIllegalCrossThreadCalls = false;

当然,还有更安全的跨线程操作方法,但是稍微复杂。

是一次打开的数据库连接太多,还