2017-03-04 3 views
1

完了しなかったと言うエラーが出ます:{ "第二:私はERROを取得し、このコードで私はいつもの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'を使用し、スレッドセーフであることは保証されません。 2つのクエリで待っています。

最初のクエリでToListAsync()の代わりにToList()を使用すると、問題は発生しません。

しかし、すべての場合にawaitを使用しているとエラーが発生します。

ありがとうございました。

+3

'await'sのメソッド本体はokです。メソッドをどのように使用(呼び出し)するのがより面白いのですか?(1)メソッドが非同期voidであり、(2) 'DbContext'が外部に渡されることに気づくでしょう。 –

答えて

1

メソッド定義をasync voidからasyncタスクに変更してみてください。また、を追加することが重要であることは、メソッド呼び出しでを待つことです。

関連する問題