У меня есть тонны [WebMethod]
для всего приложения, и я хочу, чтобы все мои [WebMethod]
были асинхронными. Я украсил все мои подписи [WebMethod]
с помощью async и жду ключевых слов, а затем запустил приложение. Это не сработало, как ожидалось. Скажем, у меня есть код
Код за
[WebMethod]
public static async Task<List<XXX>> GetXXX()
{
return await new BusinessLogic().GetXXX().ConfigureAwait(false);
}
Бизнес-уровень
internal async Task<List<XXX>> GetXXX()
{
var obj = await objDAL.GetXXX().ConfigureAwait(false);
List<XXX> listDO = new List<XXX>();
foreach (var item in obj)
{
listDO.Add(new Countries
{
XXXName = item.name,
XXXID = item.id
});
}
return listDO;
objDAL.GetXXX
internal async Task<List<tblXXX>> GetXXX()
{
using (ABCEntities ctx = new ABCEntities())
{
return await ctx.tblXXX.ToListAsync().ConfigureAwait(false);
}
}
Я поставил отладчики по всему пути, код выше пришел в return await ctx.tblXXX.ToListAsync();
, а затем отладчик теряет контроль, и система стала неактивной.
Я нашел старые решения, которые не используют мощность async
и await
.
Вопрос в том, как я могу сделать свою функцию WebMethod asyc
.
Спасибо