Отправка переменной с помощью UploadProgressChangedEventHandler

Я строю программу, которая асинхронно загружает много файлов. Чтобы сделать индикатор выполнения с подробной информацией, я хотел бы передать переменную filepath в UploadProgressChangedEventHandler или использовать обходной путь. Я исследовал объект, отправленный функции, и нигде не нашел пути. другой мыслью было бы объявить функцию встроенной, как в других языках, например:

UploadProgressChangedEventHandler(functionname({ declare_function_here }));

Это код, который я использую сейчас:

            public async Task upload(string cust, string proj, string path)
            {

            String myDocumentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                Uri url = new Uri("http://xxx/webservice/sync.php?u=true&c=" + cust + "&p=" + proj + "&f=" + path);
                string file = myDocumentPath + "\\yyy\\" + path;

            WebClient client = new WebClient();
                // add event handlers for completed and progress changed
                client.UploadProgressChanged += new UploadProgressChangedEventHandler(client_UploadProgressChanged);

                client.UploadFileCompleted += new UploadFileCompletedEventHandler(client_UploadFileCompleted);
                // carry out the operation as normal
                Console.WriteLine("sending..."+file);
                client.UploadFileAsync(url, @file);
            }

            }
            void client_UploadProgressChanged( object sender, UploadProgressChangedEventArgs e)
            {
                //MessageBox.Show(sender., "Error Title", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                upPerc = e.ProgressPercentage;
                Console.WriteLine(e.ProgressPercentage);
            }

ОБНОВЛЕНИЕ - не полное решение: решено с помощью этого кода... но теперь я не могу получить процент....... от передачи аргументов в обработчик событий

client.UploadProgressChanged += new UploadProgressChangedEventHandler((sender, eventArgs) =>
                {
                    // name and age are accessible here!!
                    Console.WriteLine("Process "+path);
                });

0 ответов

Другие вопросы по тегам