在c#中显示进度

时间:2015-01-18 08:50:07

标签: c# timer progress

我正在考虑使用类似LED的指示灯来显示(绿色到红色)。

我目前的代码是这样的:

bool saveSingleSampleDone = false;

private void btnSingleSampleData_Click(object sender, EventArgs e)
{
    LEDindicator.Image = global::OnlineData.Properties.Resources.green_indicator;
    LEDindicator.Refresh();

    while (!saveSingleSampleDone);

    if (saveSingleSampleDone)
    {
        LEDindicator.Image = global::OnlineData.Properties.Resources.red_indicator;
        LEDindicator.Refresh();
    }
}

从运行的线程触发saveSingleSampleDone标志。

问题在于代码会因while (!saveSingleSampleDone);语句而挂起,而且这种写法也不是很整洁。

我正在考虑在线程中启动计时器来跟踪事件的开始和结束,但我的问题是,是否有一种更优雅的方式来实现指示而不使用计时器?

1 个答案:

答案 0 :(得分:0)

您应该使用的是BackgroundWorker