当我点击主界面上的刷新按钮,然后就会延时大约半分钟来读取信息,但是在读取的时候,整个软件就像死了一样(其实没有),刷新还在继续,所以我想达到这样的效果:点击刷新按钮,就弹出一个进度条在不停的动,表示程序正在运行,并没有死,然后进度条在刷,与此同时,刷新过程还在继续,当刷新结束时,进度条消失,显示主界面。
我之前询问过,可以通过多线程的方式来实现,但我是个新手,对多线程还不是很了解。还请大家指教呢。
这是我的程序。delegate void ShowProgressBar();private void Frm_Page_Load(object sender,EventArgs e)
{
progressBar1.Style=ProgressBarStyle.Marquee;
progressBar1.Visible=false;
}
private void ShowProgress()
{
if (progressBar1.InvokeRequired)
{
ShowProgressBar MyDelegate=new ShowProgressBar(ShowProgress)
this.BeginInvoke(MyDelegate,null);
}
else
{
progressBar1.Visible=true;
}
}private void SelectDate()
{
if (isNew)
{
this.BeginInvoke(new ThreadStart(this.ShowProgress);
Refursh();
}
}
private void Refursh() //刷新过程,可能很慢
{
....
}运行后,界面还是假死,等刷新完了进度条才显示。所以我想问一下该怎么解决。
不胜感激
我之前询问过,可以通过多线程的方式来实现,但我是个新手,对多线程还不是很了解。还请大家指教呢。
这是我的程序。delegate void ShowProgressBar();private void Frm_Page_Load(object sender,EventArgs e)
{
progressBar1.Style=ProgressBarStyle.Marquee;
progressBar1.Visible=false;
}
private void ShowProgress()
{
if (progressBar1.InvokeRequired)
{
ShowProgressBar MyDelegate=new ShowProgressBar(ShowProgress)
this.BeginInvoke(MyDelegate,null);
}
else
{
progressBar1.Visible=true;
}
}private void SelectDate()
{
if (isNew)
{
this.BeginInvoke(new ThreadStart(this.ShowProgress);
Refursh();
}
}
private void Refursh() //刷新过程,可能很慢
{
....
}运行后,界面还是假死,等刷新完了进度条才显示。所以我想问一下该怎么解决。
不胜感激
用个类似进度条的gif就行。
[/Quote
关键是要显示啊,我开多线程就是为了显示
还是不显示,只有等到Refursh()完了才显示
大家有没有好的办法,关于多线程的
using System.Threading;delegate void ShowProgressBar();private void Frm_Page_Load(object sender,EventArgs e)
{
progressBar1.Style=ProgressBarStyle.Marquee;
progressBar1.Visible=false;
}
private void ShowProgress()
{
if (progressBar1.InvokeRequired)
{
ShowProgressBar MyDelegate=new ShowProgressBar(ShowProgress)
this.BeginInvoke(MyDelegate,null);
}
else
{
progressBar1.Visible=true;
}
}private void SelectDate()
{
if (isNew)
{
Thread s=new Thread(Refursh);
s.Start();
//Refursh();
}
}
private void Refursh() //刷新过程,可能很慢
{
this.BeginInvoke(new ThreadStart(this.ShowProgress);
....
//需要写一个HideProgress的方法。
}