Я пытаюсь реализовать индикатор прогресса в WPF. Я перебираю список путей к файлам (List) и выполняю некоторые операции над файлами. Я хочу отслеживать ход процесса, но он работает неправильно. В этом случае каждый раз, когда вызывается метод tagAndMoveFiles (), он вызывается с одним и тем же элементом из списка foreach, но вызывается надлежащее количество раз. Я не очень хорош с делегатами (очевидно) ... Я включил весь соответствующий код. Спасибо за вашу помощь. (uploadProgress - индикатор выполнения)
uploadProgress.Maximum = impJob.SourceFilePaths.Count;
DispatcherTimer timer = new DispatcherTimer();
int progress = 0;
foreach (string sourcefilepath in impJob.SourceFilePaths)
{
Thread t = new Thread(new ThreadStart(
delegate()
{
uploadProgress.Dispatcher.BeginInvoke(DispatcherPriority.Loaded,
new Action(
delegate
{
tagAndMoveFiles(sourcefilepath, targetFolder, impJob, sourceFileProcessed);
uploadProgress.Value = ++progress;
Thread.Sleep(100);
}
));
}
));
t.Start();
}