locked
非同步取得GPS問題 RRS feed

  • 問題

  •  private async void Get_Location()
            {
                var geolocator = new Geolocator() { MovementThreshold = 10, DesiredAccuracyInMeters = 1000 };

                try
                {
                    var position = await geolocator.GetGeopositionAsync(
                        maximumAge: TimeSpan.FromMinutes(5),
                        timeout: TimeSpan.FromSeconds(10)
                        );
                    App.Latitude = position.Coordinate.Latitude;
                    App.Longitude = position.Coordinate.Longitude;
                }
                catch (Exception ex)
                {            }

               }

    大家好 這function是我用來取得經緯度的function

    而程式接下來就會把抓到的經緯度拿去做其他應用

    可是GPS是非同步的方法去抓

    以至於還沒抓到經緯度程式就繼續跑下去

    使得接下來的應用使用的經緯度App.Latitude & Longitude都是0(還未抓到值)

    想請問大家有沒有辦法使用同步的方法來獲得GPS位置

    或是有其他方法讓接下來的程式碼必須等到GPS值抓到後才執行呢?

    謝謝

    2014年1月4日 上午 04:21

解答

  •  把宣告改成 private async Task Get_Location()

    這樣你在呼叫端就可以用 await Get_Location() 就會等


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年1月4日 上午 04:46

所有回覆

  •  把宣告改成 private async Task Get_Location()

    這樣你在呼叫端就可以用 await Get_Location() 就會等


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年1月4日 上午 04:46
  • 成功解決了

    謝謝!!

    2014年1月5日 上午 05:37