2016-11-16 159 views
0

我有一个按钮和一个toolstripprogressbar简单的winform。的按钮后面的代码是:C#Winform - 学习异步/等待 - 如何更新进度条

private async void button1_Click(object sender, EventArgs e) 
    { 
     await Task.Run(() => 
     { 
      var path = @"W:\Records"; 

      var files = DirectoryLister.GetFileNames(path); 

     }); 
    } 

点击按钮调用一个静态类,它返回一个含有IEnumerable<string>在路径及其子目录中的文件名的静态方法。

我试图更新进度条,因为这是发生,但不确定如何去做。在过去,我使用了背景工作,但现在我正在尝试这种异步方式。

+2

只需使用IProgress 即可。阅读关于它[这里](https://blogs.msdn.microsoft.com/dotnet/2012/06/06/async-in-4-5-enabling-progress-and-cancellation-in-async-apis/) 。 – user1681317

回答

-2

创建一个活动并将其提升为进度状态。主线程可以通过一个委托函数来订阅这个事件,这个函数反过来更新你的进度条。

+1

这是一个评论质量的答案。 – itsme86