У меня была такая же проблема, как вы, и я использовал RadAutoCompleteBox . Он имеет множество клиентских и серверных событий, которые помогают вам справляться с различными ситуациями. Это очень удобно для проектов ASP.NET.
Я считаю, что вы видите тупик, хотя я не уверен, как это доказать.
HttpClient
на большинстве платформ правильно использует ConfigureAwait(false)
внутри, но на нескольких платформах это не так. Я считаю, что WP8 является одним из тех, кто этого не делает. Это означает, что вы можете использовать ConfigureAwait(false)
все, что хотите, но HttpClient
все равно может вызвать тупик.
Лучшее решение - полностью асинхронно. Но если это невозможно, тогда приходят в голову две альтернативы:
HttpClient
на фоновый поток. public Byte[] A()
{
var task = Task.Run(() => BAsync());
return task.GetAwaiter().GetResult();
}
public Byte[] A()
{
return AsyncContext.Run(() => BAsync());
}
Обратите внимание, что AsyncContext
из моей библиотеки AsyncEx . I полагаю, что AsyncContext
должен работать на WP8, но я на самом деле не использовал его на этой платформе.