Теперь я сообщаю о каждом имени файла, в котором я ищу, и он работает нормально. Но теперь я также хочу сообщить о процентах прогресса в progressBar1, который у меня есть в дизайнере. В расчет также следует включить, если программа вводит цикл while. Я добавил переменную counterFiles, но не знаю, как это сделать.Как я могу рассчитать проценты и сообщить об этом фоном?
У меня есть этот метод:
public List<string> FindLines(string DirName, string TextToSearch)
{
int countFiles = 0;
int counter = 0;
List<string> findLines = new List<string>();
DirectoryInfo di = new DirectoryInfo(DirName);
if (di != null && di.Exists)
{
if (CheckFileForAccess(DirName) == true)
{
foreach (FileInfo fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
if (string.Compare(fi.Extension, ".cs", true) == 0)
{
countFiles++;
//countFiles/
backgroundWorker1.ReportProgress(0, fi.Name);
System.Threading.Thread.Sleep(200);
using (StreamReader sr = fi.OpenText())
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
if (s.Contains(TextToSearch))
{
counter++;
findLines.Add(s);
}
}
}
}
}
}
}
return findLines;
}
В BackgroundWorker DoWork и progresschanged события
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
FindLines(@"d:\c-sharp", "string s1 = treeView1.SelectedNode.Tag as string;");
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label2.Text = e.UserState.ToString();
}
Вы пробовали поиск в google на progressbar и progress progress рабочий рабочий. Http://stackoverflow.com/questions/13874122/running-a-method-in-backgroundworker-a nd-show-progressbar – MethodMan
Я знаю формулу для расчета прогресса * total/100 Проблема в том, как узнать общее количество в моем коде? В ссылке вы указали, что пользователь знает количество файлов, но как я могу найти количество каталогов в моем коде как общее? –
есть несколько проектов, которые показывают, что вы ищете, есть один на сайте «CodeProject» .. выполните поиск в Google для 'C# CodeProject backgroundworker progressbar' – MethodMan