非同期メソッドの結果が得られるまでプログラムを一時停止するにはどうすればよいですか?

Ngo Kim Huynh

私は非同期の方法を使用する必要があることを開発しています。私のプログラムは、そのメソッドの結果を待つために一時停止しないことを知っています。しかし、私のプログラムを続行するには、そのメソッドの結果が必要です。では、そのメソッドの結果が得られるまでプログラムを一時停止するにはどうすればよいですか?それ以外の場合は、非同期メソッドを含むプログラムを同期する必要があります。

これは私のコードです:

private async void DiaChiGanNhat()
    {
        double kc;

        Geolocator myGeolocator = new Geolocator();
        Geoposition myGeoposition = await myGeolocator.GetGeopositionAsync();
        Geocoordinate myGeocoordinate = myGeoposition.Coordinate;
        GeoCoordinate myGeoCoordinate = ConvertGeocoordinate(myGeocoordinate);

        IList<DiaChi> dc = dc_control.LocTheoTheLoai(TheLoai(txtTimKiem.Text));
        for (int i = 0; i < dc.Count; i++)
        {
            kc = TinhKhoangCach(myGeoCoordinate.Longitude, myGeoCoordinate.Latitude, dc[i].KinhDo, dc[i].ViDo);
            distance[i] = kc;
        }

        //sap xep tang dan ve khoang cach va ID
        for (int i = 0; i < distance.Length; i++)
        {
            if (distance[i] > distance[i + 1])
            {
                double tg1 = distance[i];
                distance[i] = distance[i + 1];
                distance[i + 1] = tg1;

                int tg2 = id[i];
                id[i] = id[i + 1];
                id[i + 1] = tg2;
            }
        }
    }
private void bttTimKiem_Click(object sender, RoutedEventArgs e)
    {
        DiaChiGanNhat();
        IList<DiaChi> addr1 = dc_control.LocTheoID(id[0]);
        txtDiaChi1.Text = addr1[0].TenDiaChi;

        IList<DiaChi> addr2 = dc_control.LocTheoID(id[1]);
        txtDiaChi2.Text = addr2[0].TenDiaChi;

        IList<DiaChi> addr3 = dc_control.LocTheoID(id[2]);
        txtDiaChi3.Text = addr3[0].TenDiaChi;
    }

それが私の問題です。メソッドDiaChiGanNhat()が終了するまで、プログラムを一時停止する必要があります。メソッド名は気にしないでください。私はベトナム人です。

助けてくれてありがとう!

d.moncada

を使用してこれを試すことができます。これはWait、終了するまでそのメソッドをブロックします。

private void bttTimKiem_Click(object sender, RoutedEventArgs e)
    {
        var task = Task.Factory.StartNew(DiaChiGanNhat);
        task.Wait();  

        IList<DiaChi> addr1 = dc_control.LocTheoID(id[0]);
        txtDiaChi1.Text = addr1[0].TenDiaChi;

        IList<DiaChi> addr2 = dc_control.LocTheoID(id[1]);
        txtDiaChi2.Text = addr2[0].TenDiaChi;

        IList<DiaChi> addr3 = dc_control.LocTheoID(id[2]);
        txtDiaChi3.Text = addr3[0].TenDiaChi;
    }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Javaプログラム。「isLucky」メソッドを配列にループさせるにはどうすればよいですか?また、mainメソッドで結果を正しく印刷するにはどうすればよいですか?

分類Dev

Javaプログラム。「isLuckyメソッドを配列にループさせるにはどうすればよいですか?また、結果をmainメソッドに出力するにはどうすればよいですか?

分類Dev

Task.Resultなしでawaitを介して非同期メソッドから正確に結果を取得するにはどうすればよいですか?

分類Dev

Juliaでプログラムの実行を一時停止するにはどうすればよいですか?

分類Dev

非同期メソッドのタスク結果を実行せずにキューに入れるにはどうすればよいですか?

分類Dev

Pythonマルチプロセッシングで得られた結果を直接合計し、メモリを節約するためにすべての個々の結果を返さないようにするにはどうすればよいですか?

分類Dev

Xamarin.FormsのRg.Plugins.Popupから応答を取得するまでメソッドを一時停止するにはどうすればよいですか?

分類Dev

非同期メソッドをループで生成するにはどうすればよいですか?

分類Dev

プログラムでRubyの配列のすべてのメソッドを一覧表示するにはどうすればよいですか?

分類Dev

このメソッドを非同期にするにはどうすればよいですか?

分類Dev

この非同期関数から結果を取得するにはどうすればよいですか?

分類Dev

非同期Task <T>メソッドを同期的に実行するにはどうすればよいですか?

分類Dev

cliから外部プログラムを非同期で起動してその出力を破棄するにはどうすればよいですか?

分類Dev

アプリの起動時にXamarinフォームでこの非同期メソッドを呼び出すにはどうすればよいですか?

分類Dev

非同期データの準備ができるまで、React-Autosuggest検索を一時停止するにはどうすればよいですか?

分類Dev

非同期クライアントソケットc#。プログラムの動作をブロックせずに、サーバーからの情報をループで待機するにはどうすればよいですか?

分類Dev

この非同期nodejsWebスクレイピングプログラムのロジックを実装するにはどうすればよいですか?

分類Dev

Javaで他のメソッドが終了している間にコンソールintpuを一時停止するにはどうすればよいですか?

分類Dev

フラグが下がるまで一時停止するAkkaストリームフローを作成するにはどうすればよいですか?

分類Dev

実装するインターフェースが非同期の場合、「この非同期メソッドには「await」演算子がなく、同期的に実行されます」という警告を抑制するにはどうすればよいですか?

分類Dev

2つの非同期メソッドから値を返すにはどうすればよいですか?

分類Dev

非同期メソッドが「非同期」で終わっていない場合、Visual Studioで警告を受け取るにはどうすればよいですか?

分類Dev

トレイトで非同期メソッドを定義するにはどうすればよいですか?

分類Dev

メソッドの結果を1行で変更するにはどうすればよいですか?

分類Dev

(正しく)例外をスローするこの非同期メソッドをユニットテストするにはどうすればよいですか?

分類Dev

void以外の値を返すことができる非同期メソッドを作成するにはどうすればよいですか?

分類Dev

メソッドから取得した結果の列を既存のデータフレームに追加するにはどうすればよいですか?

分類Dev

API結果のテレグラムグループチャットからメッセージが削除されているかどうかを確認するにはどうすればよいですか?

分類Dev

メソッドが同期されているのに、2つのスレッドで異なる結果が得られるのはなぜですか?

Related 関連記事

  1. 1

    Javaプログラム。「isLucky」メソッドを配列にループさせるにはどうすればよいですか?また、mainメソッドで結果を正しく印刷するにはどうすればよいですか?

  2. 2

    Javaプログラム。「isLuckyメソッドを配列にループさせるにはどうすればよいですか?また、結果をmainメソッドに出力するにはどうすればよいですか?

  3. 3

    Task.Resultなしでawaitを介して非同期メソッドから正確に結果を取得するにはどうすればよいですか?

  4. 4

    Juliaでプログラムの実行を一時停止するにはどうすればよいですか?

  5. 5

    非同期メソッドのタスク結果を実行せずにキューに入れるにはどうすればよいですか?

  6. 6

    Pythonマルチプロセッシングで得られた結果を直接合計し、メモリを節約するためにすべての個々の結果を返さないようにするにはどうすればよいですか?

  7. 7

    Xamarin.FormsのRg.Plugins.Popupから応答を取得するまでメソッドを一時停止するにはどうすればよいですか?

  8. 8

    非同期メソッドをループで生成するにはどうすればよいですか?

  9. 9

    プログラムでRubyの配列のすべてのメソッドを一覧表示するにはどうすればよいですか?

  10. 10

    このメソッドを非同期にするにはどうすればよいですか?

  11. 11

    この非同期関数から結果を取得するにはどうすればよいですか?

  12. 12

    非同期Task <T>メソッドを同期的に実行するにはどうすればよいですか?

  13. 13

    cliから外部プログラムを非同期で起動してその出力を破棄するにはどうすればよいですか?

  14. 14

    アプリの起動時にXamarinフォームでこの非同期メソッドを呼び出すにはどうすればよいですか?

  15. 15

    非同期データの準備ができるまで、React-Autosuggest検索を一時停止するにはどうすればよいですか?

  16. 16

    非同期クライアントソケットc#。プログラムの動作をブロックせずに、サーバーからの情報をループで待機するにはどうすればよいですか?

  17. 17

    この非同期nodejsWebスクレイピングプログラムのロジックを実装するにはどうすればよいですか?

  18. 18

    Javaで他のメソッドが終了している間にコンソールintpuを一時停止するにはどうすればよいですか?

  19. 19

    フラグが下がるまで一時停止するAkkaストリームフローを作成するにはどうすればよいですか?

  20. 20

    実装するインターフェースが非同期の場合、「この非同期メソッドには「await」演算子がなく、同期的に実行されます」という警告を抑制するにはどうすればよいですか?

  21. 21

    2つの非同期メソッドから値を返すにはどうすればよいですか?

  22. 22

    非同期メソッドが「非同期」で終わっていない場合、Visual Studioで警告を受け取るにはどうすればよいですか?

  23. 23

    トレイトで非同期メソッドを定義するにはどうすればよいですか?

  24. 24

    メソッドの結果を1行で変更するにはどうすればよいですか?

  25. 25

    (正しく)例外をスローするこの非同期メソッドをユニットテストするにはどうすればよいですか?

  26. 26

    void以外の値を返すことができる非同期メソッドを作成するにはどうすればよいですか?

  27. 27

    メソッドから取得した結果の列を既存のデータフレームに追加するにはどうすればよいですか?

  28. 28

    API結果のテレグラムグループチャットからメッセージが削除されているかどうかを確認するにはどうすればよいですか?

  29. 29

    メソッドが同期されているのに、2つのスレッドで異なる結果が得られるのはなぜですか?

ホットタグ

アーカイブ