Я использую .Net api framework для звонков на Ebay для обновления статуса доставки. У меня есть код, который работает, но API Ebay общеизвестно медленный и может занять от 3 до 5 секунд на вызов. Около 50 предметов это немного медленно.
Вот мой рабочий код:
private void button1_Click(object sender, EventArgs e)
{
Query query = new Query(OrderItem.Schema);
query.Top = "50";
query.WHERE(OrderItem.Columns.SourceId, 1);
query.ORDER_BY(OrderItem.Columns.OrderItemId, "DESC");
List<int> salesIds = new List<int>();
OrderItemCollection col = OrderItemController.FetchByQuery(query);
foreach(OrderItem oi in col)
{
GetOrdersCall getOrders = new GetOrdersCall(EbayContextHelper.GetContext(YellowLily.Business.Enums.ApplicationSource.YellowLily));
getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
getOrders.OrderRole = TradingRoleCodeType.Seller;
getOrders.OrderIDList = new StringCollection(new[] { oi.ExtOrderId });
// this fires of an HTTP request behind the scenes
getOrders.Execute();
foreach (OrderType order in getOrders.OrderList)
{
salesIds.Add(order.ShippingDetails.SellingManagerSalesRecordNumber);
}
}
}
Обратите внимание на код, который я заменил, обновляя статус доставки, чтобы просто получать данные, т.е. получать заказ и возвращать некоторые данные, поскольку я не хочу связываться с моими реальными заказами во время тестирования этого.
Я разумный кодер, но асинхронная библиотека меня очень смущает. Может ли кто-нибудь указать мне правильное направление, как я могу преобразовать это в асинхронный вызов?
У меня есть пара проблем: