我们正在构建一种使用 eConnect 处理时间表的自定义方法。公开了一种方法,该方法允许将时间表文件提交给 GP。此方法同步运行,但可能需要很长时间才能完成。我该如何处理这个问题,以便用户的客户端可以同时提出额外的请求?
我尝试在此方法上使用 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 调用,则在执行上述方法时调用似乎没有到达那里。我希望方法调用在后台执行,以便客户端仍然可以与服务器通信以执行其他请求。