Как заставить процесс подождать, пока он не будет завершен до нового запросаC#

Место общения программистов C#
Ответить
Anonymous
 Как заставить процесс подождать, пока он не будет завершен до нового запроса

Сообщение Anonymous »

Я разрабатываю процесс для получения ввода из объекта базы данных и конвертировать данные в экспорт файла Excel. Я использую инструмент NPOI для этого. < /P>
Процесс преобразования работает нормально, тогда как это немного длинный процесс. Первый процесс разрывается, и процесс продолжается по новому запросу. < /P>
Я хочу убедиться, что первый процесс завершится, прежде чем следующий сможет начать. Обратите внимание, что я новичок в этом и не совсем уверен, что то, что я сделал, ожидает каждого процесса. Пожалуйста, поправьте меня, если я ошибаюсь. < /P>
byte[] IExportTranslator.CreateExcelExportFile(CalSetupVM calSetupVM, ExportCriteriaVM exportCriteriaVM, string name)
{
return Task.Run(async () => await CreateAsynExportFile(calendarSetupVM, ganttExportCriteriaVM, filterName)).Result;
}

public async Task CreateAsynExportFile(CalSetupVM calSetupVM, ExportCriteriaVM exportCriteriaVM, string name)
{
return await Task.Run(() => doSomeWork(calSetupVM, exportCriteriaVM, name));
}

private byte[] doSomeWork(CalSetupVM calSetupVM, ExportCriteriaVM exportCriteriaVM, string name)
{
// do something...
return byte[...];
}
< /code>
Я сделал приведенный выше код на основе некоторых предложений на форумах. И то, что я прочитал вокруг Async/ожидаю. И так далее, чтобы стоять в очереди и обрабатывать один за другим.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ew-request
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»