【发布时间】:2015-03-12 19:19:33
【问题描述】:
调用 awaitMethod() 不会打印GetFilmCount() 中console.printline 的第二次调用,也不会调用awaitMethod() 中的最后一个打印语句。
唯一的输出是第一次调用 GetFilmCount() 时的 Console.printLine()。
我在这里做错了吗?想不通它为什么会这样??
public async void awaitMethod()
{
int count1 = await GetFilmCount(1);
int count2 = await GetFilmCount(2);
Console.WriteLine("Number of films {0}, {1} ", count1,count2 );
}
public async Task<int> GetFilmCount(int count)
{
Console.WriteLine("Count {0} ", count);
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
MySqlCommand cmd = new MySqlCommand("select sleep(5) ; select count(*) from sakila.film", connection);
return await cmd.ExecuteScalarAsync().ContinueWith(t => {
return Convert.ToInt32(t.Result);
});
}
}
【问题讨论】:
-
你怎么打电话给
awaitMethod?
标签: c# .net async-await c#-5.0