2015-06-23 4 views
3

Я читал о загрузке файлов ASPAP WebAPI в Интернете и StackOverflow.Должен ли WebAPI загружаться в Async?

Все вопросы, которые я видел (прямо или косвенно), относятся к the MSDN article example with the async upload.

Это де-факто способ обработки загрузки файлов? Должен ли файл загружаться в WebAPI использовать Task<> и async?

ответ

2

Друг просто спросил меня об этой проблеме, и короткий ответ, я считаю, да ... с оговорками.

Соответствующий API предоставляется методами расширения, определенными на https://msdn.microsoft.com/en-us/library/system.net.http.httpcontentmultipartextensions(v=vs.118).aspx. Я охотился за синхронными версиями этих методов, но безрезультатно.

Очевидно, что возвращаемое значение от ReadAsMultipartAsync<T> - это Task<T>, на которое вы можете позвонить Wait(), чтобы заставить синхронность. Затем вы можете отказаться от асинхронизации в объявлении метода в своем контроллере.

Я еще не пробовал, но, возможно, это работает, может быть, нет, хотя нет очевидной причины, почему это не так.

Я полагаю, что вопрос, который я должен задать, - это то, почему вы хотели бы реализовать синхронную загрузку данной MS, довольно сложно заставить разработчиков спуститься по асинхронному маршруту? (Не то, чтобы это было обязательно хорошо или целесообразно во всех случаях.)

+1

Это правильно, асинхронно (как правило, не изменяет семантику, это только изменяет способ запуска и завершения операции.) – usr

+1

Не считая «принудительным», это в значительной степени является случаем, когда async - это без проблем. Почему бы вам не хотеть делать иначе. –

+1

Ну ... Я не люблю асинк, хотя я время от времени использую его, когда он подходит. в этом случае это не похоже на плохое решение, но мне любопытно, почему StuperUser хочет спуститься по синхронному маршруту. В конце концов мы решили придерживаться async, потому что для нашего случая мы не могли видеть причину не , –

Смежные вопросы