C#.net 进度条控件使用 20

有个封装好的将Daset数据集写到EXCEL里面的方法,例如CreatExcel(Dasetds)因为数据条数较大所以窗体界面成死机状态,想写个进度条,用来判断这个Cre... 有个封装好的将Daset数据集写到EXCEL里面的方法,例如CreatExcel(Daset ds)
因为数据条数较大所以窗体界面成死机状态,想写个进度条,用来判断这个CreatExcel方法执行完了没有。请哪位高手指点下。万分感激!
知道Dateset数据的条数,不知道大小。注意只是判断往Excel里写完没?也就是判断这个方法CreatExcel(Daset ds)到底执行完没,里面封装的东西不能动。谢谢!
死机?
private void Progress()
{
try
{
do
{
//Excel作成状况(blnThread = false:未完成)
if (progressBar1.Value < progressBar1.Maximum)
{
Thread.Sleep(500);
progressBar1.Value += 20;
}
else
{
Thread.Sleep(500);
progressBar1.Value = 100;
Thread.Sleep(100);
progressBar1.Value = 20;
}
}
while (blnThread == false);
this.progressBar1.Value = this.progressBar1.Maximum;
}
catch
{
}
finally
{
this.progressBar1.Visible = false;
thrBar.Abort();
}
展开
 我来答
kid83
2009-09-22 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1995万
展开全部
1L说的没错, 把CreateExcel放在一个单独的线程里,和主界面线程分开,才不会出现界面假死.单纯地使用一个进度条也不行,因为进度条也属于主界面进程里的对象.在处理CreateExcel的时候也会线程阻塞,直到CreateExcel完成.
凌清晖2d
2009-09-22 · TA获得超过174个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:87.5万
展开全部
Thread main = new Thread(new ThreadStart(delegate()
{
//生成Excel并更新进度条
}));
main.Start();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老级幸1286
2009-09-22 · TA获得超过511个赞
知道小有建树答主
回答量:756
采纳率:0%
帮助的人:386万
展开全部
对这个不了解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangmiger
2009-09-22 · TA获得超过142个赞
知道答主
回答量:153
采纳率:0%
帮助的人:0
展开全部
这个要用多线程来做, 界面单独一个线程才不会死机
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式