我正在学习异步编程,我不确定我是否正朝着正确的方向前进。我想调用多个方法异步,但从我读的asyn应该从顶层开始跟随到最低级别。但是在我做asyn方法的顶级时,编译器抱怨不能等待字符串。
public static async void Method()
{
var classdemoAsyn = new DemoAsyn();
var t = await classdemoAsyn.DoSomeImportantWork("Start ").Result;
}
public class DemoAsyn
{
public async Task<string> DoSomeImportantWork(string strDoSomeWork)
{
strDoSomeWork = strDoSomeWork + " (1) Enter => so some important work";
Console.WriteLine("**********Enter => so some important work******");
var t = await SomeComplexOperation(strDoSomeWork);
Console.WriteLine("***********End Do some important work***********");
return t;
}
public Task<string> SomeComplexOperation(string StrDoSomeComplexWork)
{
string str =StrDoSomeComplexWork + "Enter => very very complex work";
Console.WriteLine(str);
return Task.Factory.StartNew(() => {return str; });
}
}