要在单击“提交”按钮的同时保持进度条运行并冻结屏幕,应运行后台代码

我需要在单击“提交”按钮时运行进度条,并将屏幕冻结约5秒钟,但是“提交”按钮中的代码应该并行进行。

我已经创建了一个等待表单,但是在关闭连接后我已经调用了等待表单,以便进度条需要花费一些时间才能显示,并且我可以在屏幕上选择其他选项。

private void cmdselect_click(System.object _sender System.EventArgs e1)
{
    using (frmwait frm=new frmwait(savedata)) //  and I have called wait form here
    {
        frm.Showdialog(this)
    }
}

// Savedata method

void Savedata()
{
    for(int i=1;i<=500;i++)
    {
        Thread.Sleep(10);
    }
}

一旦单击按钮,进度条就不会立即启动。

dtzel 回答:要在单击“提交”按钮的同时保持进度条运行并冻结屏幕,应运行后台代码

您可以使用此:

progressBar.Minimum = 0;
progressBar.Maximum = 500;
progressBar.Value = 0;
progressBar.Step = 1;
progressBar.Refresh();

Enabled = false;               // for UX
Cursor = Cursors.WaitCursor;   // for UX
try
{
  for( int i = 1; i <= progressBar.Maximum; i++ )
  {
    // do process
    progressBar.PerformStep();
    progressBar.Refresh();
    Thread.Sleep(10);
  }
}
finally
{
  Cursor = Cursors.Default;
  Enabled = true;
}

除非您想降低处理速度,否则无需进入睡眠状态。

本文链接:https://www.f2er.com/3161789.html

大家都在问