-1
我正在學習異步編程,我不確定我是否正朝着正確的方向前進。我想調用多個方法異步,但從我讀取asyn應該從頂級後續開始到最低級別。但在頂級的時候,我做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; });
}
}
這是什麼類型的應用程序(UI或ASP.NET)?此外,您的「工作」CPU限制或I/O? – 2015-04-01 12:18:29
由於您正在等待任務的「結果」而不是任務本身,因此會出現編譯器錯誤。刪除'.Result',那個錯誤應該消失,儘管你的代碼還有其他問題。 – 2015-04-01 12:22:25
它是一個小型的控制檯應用程序,@StephenCleary。我只是開始學習異步所有我想要實現的方法asyn從頂層到底層開始寫幾個方法。 – Milas 2015-04-01 13:25:36