2017-03-04 52 views
1

我有這樣的代碼中的錯誤:我使用始終的await關鍵字,但我得到的是說,以前的操作沒有完成

private async void reasignarPiezasReservadas(DbContext paramDbContext) 
{ 
    try 
    { 
     string miStrTsql = "select..."; 
     await paramDbContext.MyType.SqlQuery(miStrTsql).ToListAsync(); 

     miStrTsql = "Select..."; 
     await paramDbContext.Database.ExecuteSqlCommandAsync(miStrTsql); 
    } 
} 

有了這個代碼,我得到的埃羅:{「第二在上一次異步操作完成之前,在此上下文中啓動操作,使用'await'以確保在調用此上下文中的另一個方法之前已完成任何異步操作,但不保證所有實例成員都是線程安全的。「}

I我在兩個查詢中使用await。

如果在第一個查詢中使用ToList()而不是ToListAsync(),那麼我不會收到問題。

但是,如果我在所有情況下都使用await,爲什麼會出現錯誤?

感謝。

+3

帶'await's的方法體是可以的。如何使用(調用)方法更有趣?可以注意到(1)方法是'async void',(2)'DbContext'是外部傳遞的。 –

回答

1

嘗試從異步空隙改變方法定義異步任務。同樣重要的是,您在方法調用中添加等待

相關問題