Я implimented (что я считаю) простым способом асинхронного в ApiController так:Debugging асинхронные ждут действий контроллера
public class CommentsController : ApiController
{
private static readonly IList<CommentModel> Comments;
static CommentsController()
{
// Note: Removed to abbreviate - populate comments manually here.
}
[ResponseType(typeof (IList<CommentModel>))]
[HttpGet]
public async Task<IHttpActionResult> GetAllComments()
{
return await Task.Factory.StartNew(() =>
{
Thread.Sleep(10000); // Breakpoint #1
return Ok(Comments); // Breakpoint #2
});
// Breakpoint #3
}
}
Примечание моих точек останова я поставил выше.
То, что я ожидал увидеть, было в №1, когда я нажал кнопку «Продолжить», чтобы поток подождал, но поток продолжался до 3-го уровня на этом этапе.
Затем, когда сон был закончен, продолжить снова и перерыв на # 2.
Однако во время отладки это кажется синхронным.
Вопрос в первую очередь заключается в том, что это действительно асинхронно, и как я отлаживаю его для проверки или иным образом с модульными тестами?
Ps. Я нажимаю api прямо из браузера - возможно, это проблема? – shenku