我有一個由EntityFramework表示的數據庫,我在異步任務中向它添加了一個元素。我的方法是在簡化這樣的:非靜態方法中的異步數據庫操作
private async Task SavePoint(Point point)
{
using (var ctx = new testDBEntities())
{
ctx.Points.Add(point);
await ctx.SaveChangesAsync();
}
}
但是任務是非靜態的,我用它簡單地調用SavePoint(point);
(沒有的await),因爲我並不需要等待完成的任務。我想要的是在後臺保存點,並允許用戶繼續他的工作,並在添加時不做任何事情。
但是我不知道在幾個任務中使用數據庫上下文(當用戶快速添加幾個點時)不會引發數據庫死鎖的競爭條件嗎?它確保互相排斥嗎?
爲什麼你認爲在'Task.Run'中執行'SavePoint'會更好?會有什麼區別? –
因爲他不想等。它可以是Task.Run()。謝謝我會更新答案 – Eldho
但是,又會有什麼區別?爲什麼比簡單地調用'SavePoint'更好? –