日期:2009-04-19 浏览次数:20521 次
// 显示进度条的委托声明
delegate void ShowProgressDelegate( int totalStep, int currentStep );
// 显示进度条的委托声明
delegate void ShowProgressDelegate( int totalStep, int currentStep );
// 显示进度条
void ShowProgress( int totalStep, int currentStep )
{
if( _Progress.InvokeRequired )
{
ShowProgressDelegate showProgress = new ShowProgressDelegate( ShowProgress );
// 为了避免工作线程被阻塞,采用异步调用委托
this.BeginInvoke( showProgress, new object[] { totalStep, currentStep } );
}
else
{
_Progress.Maximum = totalStep;
_Progress.Value = currentStep;
}
}
// 执行任务的委托声明
delegate void RunTaskDelegate( int seconds );
// 执行任务
void RunTask( int seconds )
{
// 每 1 / 4 秒 显示进度一次
for( int i = 0; i < seconds * 4; i++ )
{
Thread.Sleep( 250 );
// 显示进度条
ShowProgress( seconds * 4, i + 1 );
}
}