winform 进度条问题 BackGroundWorker 一个窗口 打开另一个窗口时 很慢 实现
登录界面登录到具体操作界面时很慢怎么可以实现用进度条来做这个事情呢,就是具体一点谢谢了...
登录界面 登录到 具体操作界面时 很慢 怎么可以 实现 用 进度条来做这个事情呢,就是 具体一点谢谢了
展开
2个回答
2013-09-02
展开全部
一般没有这样做,不过真的想实现我提供一种方法,不过这个不是事实获得查询进度去改变这个精度条的值!思路希望对你有帮助!
private void btnLogin_Click(object sender, EventArgs e)
{
progressBar1.Maximum=10;
//1.调用bgwLogin的RunWorkerAsync方法,用来引发DoWork事件
bgwLogin.RunWorkerAsync(count);
}
private void bgwLogin_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
//2.在DoWork中调用自定义函数,并将引发DoWork事件的sender传递出去
progressBar1.Value = 1;
Login(worker);
}
//自定义函数 Login()
private void Login(BackgroundWorker worker)
{
//doDataOperate是写的一个类的实例
progressBar1.Value = 3;
SqlDataReader sqlreader = doDataOperate.getread(查询语句);
if (sqlreader.Read())
{
progressBar1.Value = 10;
MessageBox.Show("登录成功");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
progressBar1.Maximum=10;
//1.调用bgwLogin的RunWorkerAsync方法,用来引发DoWork事件
bgwLogin.RunWorkerAsync(count);
}
private void bgwLogin_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
//2.在DoWork中调用自定义函数,并将引发DoWork事件的sender传递出去
progressBar1.Value = 1;
Login(worker);
}
//自定义函数 Login()
private void Login(BackgroundWorker worker)
{
//doDataOperate是写的一个类的实例
progressBar1.Value = 3;
SqlDataReader sqlreader = doDataOperate.getread(查询语句);
if (sqlreader.Read())
{
progressBar1.Value = 10;
MessageBox.Show("登录成功");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
}
2013-09-02
展开全部
是不是你连数据库比较慢啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询