2
我一直在試圖找到一個相當長時間的解決方案,這將告訴我如何創建不使用現有異步代碼的異步方法。 IE someClass.ActionAsync() 我基本上一直想這樣做如何使用異步創建您自己的異步方法並等待
public function string GetParsedData(string code){
Console.WriteLine("Starting parser");
var result = "";
foreach(var x in code.Split('\n')){
result += Encode(x);
}
return result;
}
所以,我明白我必須返回一個任務,但我已經找到了如何等待lambda表達式或任何其他建議沒有信息如何打破這一點。奇怪的是,我認爲我從更尖銳的給了我日期的建議,我會在下面發表。
這實際上是一個流行的反模式:[我應該公開同步方法的異步包裝?](http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx) – Noseratio
@Noseratio和其他人,對於異步等待和異步編程通常還是很新穎的,所以你的反應非常感謝。我能體會到碰到金錘規則的危險。我的問題最初是試圖在後臺(不阻塞)在Android上初始化SQLite數據庫。數據庫類會有一個標誌,指示它是否被卸載,加載或加載,這會阻止應用程序在加載或卸載時嘗試從它讀取數據。不確定這種模式的情況是否稍好一些。 –
克里斯托弗,你可能想把它作爲一個單獨的問題發佈。理想情況下,你應該使用自然的異步SQL API,而不是用'Task.Run'包裝同步的。更多信息:http://blogs.msdn.com/b/adonet/archive/2012/04/20/using-sqldatareader-s-new-async-methods-in-net-4-5-beta.aspx – Noseratio