Iqr*_*ra. 2 .net c# multithreading asynchronous
我有一个异步方法,我想在它完成后从同一个方法中获取一条消息。
下面是代码
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)
你需要Task.Run零件吗?你可以await在异步方法中:
var result = await pizza();
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
你也可以调用结果:
var result = pizza().Result;
Run Code Online (Sandbox Code Playgroud)
你可以
var pizza = await pizza();
Run Code Online (Sandbox Code Playgroud)
或者
var pizza = pizza().GetAwaiter().GetResult();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11374 次 |
| 最近记录: |