非同期メソッドが完了するのを待つ

残り

データベースにデータを挿入するasyncメソッドがあります:

public async void InsertRoutes(ObservableCollection<RouteEO> routes)
{
  connection.CreateTableAsync<RouteEO>().ContinueWith((result) =>
  {
     Debug.WriteLine("Routes table created");
     foreach (var route in routes)
     {
        var query = connection.Table<RouteEO>().
                      Where(v => v.InspectionId == route.InspectionId && v.EO_id == route.EO_id);

        query.ToListAsync().ContinueWith((t) =>
        {
           Debug.WriteLine("Route record inserted or updated");
           if (t.Result.Any())
                 connection.UpdateAsync(route);
           else
                 connection.InsertAsync(route);
         });
     }
    });
}

メソッドの実行が完了したときにのみ、それを呼び出してコードの次の行を実行したいと思います。

sqlController.InsertInspections(DataController.InspectionList);
Debug.WriteLine("Done");

しかし、このコードを起動すると、「テーブルが作成されました」および「レコードが挿入されました」というメッセージの前に、デバッグウィンドウに「完了」メッセージが表示されます。

なぜ、どのように修正できますか?

残り

これが私の質問への答えです:https//github.com/praeclarum/sqlite-net/blob/master/tests/AsyncTests.cs

    [Test]
    public void TestAsyncTableQueryToListAsync ()
    {
        var conn = GetConnection ();
        conn.CreateTableAsync<Customer> ().Wait ();

        // create...
        Customer customer = this.CreateCustomer ();
        conn.InsertAsync (customer).Wait ();

        // query...
        var query = conn.Table<Customer> ();
        var task = query.ToListAsync ();
        task.Wait ();
        var items = task.Result;

        // check...
        var loaded = items.Where (v => v.Id == customer.Id).First ();
        Assert.AreEqual (customer.Email, loaded.Email);
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

非同期メソッドが完了するのを待つ方法は?

分類Dev

非同期メソッドが終了するのを待つ

分類Dev

非同期ラムダ式内のすべての非同期メソッドが終了するのを待つ

分類Dev

スレッドをブロックせずに非同期メソッドを呼び出すタスクが完了するのを待つ

分類Dev

メソッドは、非同期が完了するのを待ってから次の行に移動します

分類Dev

Python3でメソッドが完了するのを非同期的に待ちます

分類Dev

HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

分類Dev

HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

分類Dev

Parallel.Invokeは、非同期メソッドが完了するのを待ちません

分類Dev

JockとMockitoでは、非同期メソッドが完了するのをどのように待つことができますか?

分類Dev

ビルドメソッドが呼び出される前に、非同期メソッドの完了を待ってデータをロードする方法は?

分類Dev

非同期メソッドを待つ必要がありますか?

分類Dev

OBJLoaderの非同期の問題-XHRがロードを完了するのを待つ

分類Dev

非同期メソッドがforループで終了するのを待ちます

分類Dev

非同期メソッドが終了するのを待っています

分類Dev

非同期メソッドを待つ方法

分類Dev

C#で非同期タスクが完了するまでメインスレッドを待つ方法

分類Dev

すべてが完了するのを待つ(非同期)

分類Dev

タスクが非同期httpwebrequestを完了するのを待つ

分類Dev

囲まれた非同期ブロックが完了するのを待つ方法

分類Dev

Swiftで非同期操作が完了するのを待つ

分類Dev

async voidメソッドがタスクを完了するのを待つ方法は?

分類Dev

メソッドの非同期呼び出しとAPI呼び出しの完了を待つ方法

分類Dev

2つの非同期メソッドのいずれかが結果を返すのを待っています

分類Dev

私はイベントを待つ必要があるときにメソッドが非同期にする方法

分類Dev

Javaのメソッドから戻る前に非同期APIコールバックを待つ必要がある

分類Dev

Task.Waitは非同期メソッドの完了を待ちません

分類Dev

セグエの前に非同期メソッドを待つ

分類Dev

待機することができ、終了するのを待たずに非同期で実行できる非同期メソッドを宣言しますか?

Related 関連記事

  1. 1

    非同期メソッドが完了するのを待つ方法は?

  2. 2

    非同期メソッドが終了するのを待つ

  3. 3

    非同期ラムダ式内のすべての非同期メソッドが終了するのを待つ

  4. 4

    スレッドをブロックせずに非同期メソッドを呼び出すタスクが完了するのを待つ

  5. 5

    メソッドは、非同期が完了するのを待ってから次の行に移動します

  6. 6

    Python3でメソッドが完了するのを非同期的に待ちます

  7. 7

    HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

  8. 8

    HttpClientを破棄する前に、非同期メソッドが完了するのを待つ必要がありますか?

  9. 9

    Parallel.Invokeは、非同期メソッドが完了するのを待ちません

  10. 10

    JockとMockitoでは、非同期メソッドが完了するのをどのように待つことができますか?

  11. 11

    ビルドメソッドが呼び出される前に、非同期メソッドの完了を待ってデータをロードする方法は?

  12. 12

    非同期メソッドを待つ必要がありますか?

  13. 13

    OBJLoaderの非同期の問題-XHRがロードを完了するのを待つ

  14. 14

    非同期メソッドがforループで終了するのを待ちます

  15. 15

    非同期メソッドが終了するのを待っています

  16. 16

    非同期メソッドを待つ方法

  17. 17

    C#で非同期タスクが完了するまでメインスレッドを待つ方法

  18. 18

    すべてが完了するのを待つ(非同期)

  19. 19

    タスクが非同期httpwebrequestを完了するのを待つ

  20. 20

    囲まれた非同期ブロックが完了するのを待つ方法

  21. 21

    Swiftで非同期操作が完了するのを待つ

  22. 22

    async voidメソッドがタスクを完了するのを待つ方法は?

  23. 23

    メソッドの非同期呼び出しとAPI呼び出しの完了を待つ方法

  24. 24

    2つの非同期メソッドのいずれかが結果を返すのを待っています

  25. 25

    私はイベントを待つ必要があるときにメソッドが非同期にする方法

  26. 26

    Javaのメソッドから戻る前に非同期APIコールバックを待つ必要がある

  27. 27

    Task.Waitは非同期メソッドの完了を待ちません

  28. 28

    セグエの前に非同期メソッドを待つ

  29. 29

    待機することができ、終了するのを待たずに非同期で実行できる非同期メソッドを宣言しますか?

ホットタグ

アーカイブ