2016-11-16 12 views
0

私は1つのボタンとtoolstripprogressbarで簡単なwinformを持っています。ボタンの後ろのコードである:C#Winform - 学習async/await - プログレスバーを更新する方法

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

関連する問題