Я разрабатываю приложение С# Winforms, часть приложения будет загружать файлы на веб-сервер с помощью AsyncUpload (используя его из-за необходимости использовать обратный вызов porgress), в программе С#
у меня есть простой цикл for, который вызывает функцию загрузки
for(int i=0;i < 10 ; i++)
{
Uploadfun();
}
И веселье творит чудеса:
Uploadfun()
{
// Logic comes here
// webClient.UploadFileAsync runs a 2nd thread to perform upload ..
webClient.UploadFileAsync(uri, "PUT", fileNameOnHD);
}
И обратный вызов, который вызывается после завершения асинхронной загрузки.
Upload_Completed_callback()
{
//Callback event
}
Изменить
Логическая последовательность:
- Веселье вызывается (из цикла)
- Веселая логика выполнена и сделано..
- Возвращается к циклу for
- Обратный вызов будет вызван в конце концов, когда UploadFileAsync (который выполняет некоторую логику в другом потоке) завершится
Проблема в 3-й точке, когда выполнение возвращается к циклу for, мне нужно заблокировать продолжение цикла до тех пор, пока не будет вызван обратный вызов.
fun
? Вероятно, вам следует подумать о предоставлении синхронного интерфейса, на котором реализован асинхронный API. - person mmx   schedule 06.02.2010callback
не будет вызвана, цикл не будет продолжаться. Пожалуйста, поправьте меня, если я ошибаюсь, дав более подробное объяснение. - person Darin Dimitrov   schedule 06.02.2010UploadFile
в основе логики и использовать асинхронный API поверх нее, если вам это нужно. - person mmx   schedule 06.02.2010