大量数据查询导致界面卡好一会儿
我是用C# WINFORM做的数据库查询,数据量有100000条记录,但在查询的过程中整个WINFORM界面都卡住了,等查询完毕才恢复了,我该怎样改善这种情况呀???(另外在查询优化上有什么好的建议吗?)
注:(我已经为数据库查询开启了一个线程,原以为另开一线程会好一些,但界面仍然卡住)
部分代码如下:
---------------------------
主线程代码:
if (th != null) //th为System.Threading.Thread 对象
th.Abort();
th = new System.Threading.Thread( SQLThread );
th.Start();
while (semaphore < 0) //semaphore 为我定义的全局变量,默认为-1,当SQLThread线程执行完毕semaphore将是0
{
}
semaphore = -1;
----------------------
SQLThread线程代码:
private void SQLThread()
{
dt = null; //dt为全局的DataTable 对象
dt = new DataTable();
f.db.selectsql(sql, ref dt);//f为父窗口地址,db为自定义数据库操作类对象,sql为数据库查询字符串
semaphore = 0;
}