現在、テキストファイルを読み込み、その中のすべての電子メールアドレスを抽出しようとしています。この次の関数で作業ガット:C#関数が実行されているときにプログレスバーを入力する
私のC#の機能:ロードされたテキストファイルが巨大なことができるので、
public void extractMails(string filePath)
{
List<string> mailAddressList = new List<string>();
string data = File.ReadAllText(filePath);
Regex emailRegex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.IgnoreCase);
MatchCollection emailMatches = emailRegex.Matches(data);
StringBuilder sb = new StringBuilder();
foreach (Match emailMatch in emailMatches)
{
sb.AppendLine(emailMatch.Value);
}
string exePath = System.Reflection.Assembly.GetEntryAssembly().Location;
string dirPath = Path.GetDirectoryName(exePath);
File.WriteAllText(dirPath + "extractedEmails.txt", sb.ToString());
}
今私は、プログレスバーを追加しました。プログレスバーが最後に100%に満たされるように関数が実行されている間に、どのようにプログレスバーを塗りつぶすことができますか?
私は何か助けに感謝します。
、あなたは大きなファイルのためのベストプラクティスである行毎にファイルを読み込み、async-を使用するために、 'ReadLines'と' ReadAllText'を交換する必要がBackgroundWorkerの –
を使用長い実行コードを同期して実行するためのパターンを待ちます。 – user3185569
はいwinformアプリケーション – d45ndx