初学者问:C#.net中进度条的使用,在线等待
我刚刚学用C#.net,使用存储过程向SQLServer数据库中存储数据,由于数据较大,我希望在Wwinform中给用户用进度条显示存储进度,如何获取数据库当前存储进度进...
我刚刚学用C#.net,使用存储过程向SQL Server数据库中存储数据,由于数据较大,我希望在Wwinform中给用户用进度条显示存储进度,如何获取数据库当前存储进度进加以实现呢??
展开
1个回答
展开全部
读数据库要同步很难达到,可用多线程.
声明多一个线程函数,把操作数据的操作放在这个函数里就行了,最简单的线程同步就是定义全局变量,需等待的线程不断循环判断该全局变量的值,直到满足条件就跳出循环.操作数据库的那个函数当完成操作后就改变那个全局变量的值来使那个等待线程跳出等待.在这里写代码的话三五百句也说不完
你可以用假进度,数据操作和进度条不同步,但能控制开始和完成. 1)定义一个全局变量 int bFinished,和一个线程Thread th ,设你的过程为 SaveDb();
bFinished = 0;
th = new Thread(New ThreadStart(progress)); th.Start();
SaveDb();
bFinished = 1;
void progress()
{
while(bFinished != 1)
{
//在这里把进度条移动一点点一点点
Sleep(500);
Application.DoEvents();
}
//退出循环,进度条变成100%
...
}
声明多一个线程函数,把操作数据的操作放在这个函数里就行了,最简单的线程同步就是定义全局变量,需等待的线程不断循环判断该全局变量的值,直到满足条件就跳出循环.操作数据库的那个函数当完成操作后就改变那个全局变量的值来使那个等待线程跳出等待.在这里写代码的话三五百句也说不完
你可以用假进度,数据操作和进度条不同步,但能控制开始和完成. 1)定义一个全局变量 int bFinished,和一个线程Thread th ,设你的过程为 SaveDb();
bFinished = 0;
th = new Thread(New ThreadStart(progress)); th.Start();
SaveDb();
bFinished = 1;
void progress()
{
while(bFinished != 1)
{
//在这里把进度条移动一点点一点点
Sleep(500);
Application.DoEvents();
}
//退出循环,进度条变成100%
...
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询