Как заставить процесс подождать, пока он не будет завершен до нового запроса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

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