我正在关注@StephenHaunts的博客文章https://stephenhaunts.com/2014/10/10/simple-async-await-example-for-asynchronous-programming/#comments
在LongRunningOperation中的代码中最后一个return语句的目的是什么.
private static async Task<string> LongRunningOperation()
{
int counter;
for (counter = 0; counter < 50000; counter++)
{
Console.WriteLine(counter);
}
return "Counter = " + counter;
}
Run Code Online (Sandbox Code Playgroud)
现在我所知道的是:
当我在LongrunningOperation里面调用Task.Run它时,它应该返回默认返回的等待方法.然后为什么不这样做.
如果我使用Task.Result属性,那么它将同步运行并阻止调用线程,这是不推荐的.
我想问的是:
我如何在呼叫点打印这个返回值?
为什么@Stephen在没有需要的时候写了这个陈述?
提前致谢.
我有一个异步方法,我想在它完成后从同一个方法中获取一条消息。
下面是代码
static async Task<string> pizza()
{
await Task.Delay(10);
for (int i = 0; i < 100; i++)
{
//Console.WriteLine("Processing pizza...");
}
return "Pizza is ready";
}
Run Code Online (Sandbox Code Playgroud)
我想在呼叫点收到这条消息
....... code
Task t=null;
switch (option)
{
case 1:
{
await Task.Run(() =>
{
t=pizza();// asynchronous method
});
Console.WriteLine(t.ToString());
}
break;
.... other code
Run Code Online (Sandbox Code Playgroud)