我試圖開始使用.net 4.5中的異步方法,我想我已經想通了,但現在當我試圖在func中做到這一點,但我不能得到以下內容工作:async lambda在等待方法返回前沒有返回
Action task = async() =>
{
await _db.SaveChangesAsync();
Debug.WriteLine("Save completed");
};
task();
Debug.WriteLine("Returned");
輸出將是: 保存完成 返回
我希望它是相反的順序。
任何想法?
謝謝!
編輯1:
我創建了一個示例代碼,以顯示我想要的東西,而奇怪的是,它完美的作品:
static void Main(string[] args)
{
using (BCFdbEntities db = new BCFdbEntities())
{
IssueComment ic = db.IssueComments.First();
ic.Comment = DateTime.Now.ToString() ;
Action a = async() =>
{
await db.SaveChangesAsync();
Console.WriteLine("Save completed");
};
a();
Console.WriteLine("Returned");
Console.ReadLine();
}
}
}
但是,我不能讓完全相同的代碼在我的實時代碼中工作。 該代碼是商業工具插件的一部分,他們是否可以阻止它?
你是什麼意思的「我不能得到以下工作」?目前還不清楚你想要實現什麼,你期望發生什麼,實際發生了什麼,或者你正在使用什麼上下文(控制檯應用程序,Web應用程序,winforms/wpf應用程序)。 –
對不起,約翰,我無意中發佈它之前,我已經完成了它,而我是插件標籤。 – Erik83
好吧,SaveChangesAsync是做什麼的? (這是EF例如?)你可以發佈一個簡短的,但*完整的*程序展示問題? –