Мы создаем собственный способ обработки расписаний с использованием eConnect. Раскрыт метод, позволяющий отправлять документы расписаний в ГП. Этот метод выполняется синхронно, но может занять много времени. Как я могу справиться с этим, чтобы клиент пользователя тем временем мог делать дополнительные запросы?
Я пытался использовать async / await для этого метода, но поскольку метод не является ожидаемым, он не будет работать. Метод зависит от службы Windows. Я исследовал возможность обернуть его в Task.Run, но у меня есть сомнения, так как это звучит как плохая практика.
public bool SaveTimesheets(string ConnectionString, List<PATimeSheetsType> Timesheets)
{
string timesheetDocument = string.Empty;
//Creating timesheet document
bool result = false;
eConnectMethods eConnectMethods = new eConnectMethods();
//CreateEntity takes minutes to complete and return
result = eConnectMethods.CreateEntity(ConnectionString, timesheetDocument);
return result;
}
Поведение, которое я сейчас получаю, состоит в том, что, если, например, я выполняю ajax-вызовы на стороне клиента, кажется, что вызов не происходит, пока выполняется вышеуказанный метод. Мне бы хотелось, чтобы вызов метода выполнялся в фоновом режиме, чтобы клиент мог по-прежнему связываться с сервером для выполнения других запросов.