CivicAddressResolver.ResolveAddressAsync(GeoCoordinate) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een adres asynchroon omgezet vanaf een locatie die is gebaseerd op breedtegraad en lengtegraad. De aanroep blokkeert de uitvoering van de aanroepende thread niet terwijl het adres wordt opgelost.
public:
virtual void ResolveAddressAsync(System::Device::Location::GeoCoordinate ^ coordinate);
public void ResolveAddressAsync(System.Device.Location.GeoCoordinate coordinate);
abstract member ResolveAddressAsync : System.Device.Location.GeoCoordinate -> unit
override this.ResolveAddressAsync : System.Device.Location.GeoCoordinate -> unit
Public Sub ResolveAddressAsync (coordinate As GeoCoordinate)
Parameters
- coordinate
- GeoCoordinate
De GeoCoordinate locatie die moet worden omgezet in een adres.
Implementeringen
Uitzonderingen
coordinate is null.
coordinate bevat geen geldige breedte- en lengtegraad.
Voorbeelden
Het volgende programma laat zien hoe ResolveAddressAsync u een civic address asynchroon kunt oplossen.
using System;
using System.Device.Location;
namespace ResolveAddressSync
{
class AsyncProgram
{
public static void Main(string[] args)
{
ResolveAddressAsync();
}
static void ResolveAddressAsync()
{
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
bool started = false;
watcher.MovementThreshold = 1.0; // set to one meter
started = watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
if (started)
{
CivicAddressResolver resolver = new CivicAddressResolver();
resolver.ResolveAddressCompleted += new EventHandler<ResolveAddressCompletedEventArgs>(resolver_ResolveAddressCompleted);
if (!watcher.Position.Location.IsUnknown)
{
resolver.ResolveAddressAsync(watcher.Position.Location);
}
}
}
static void resolver_ResolveAddressCompleted(object sender, ResolveAddressCompletedEventArgs e)
{
if (!e.Address.IsUnknown)
{
Console.WriteLine("Country: {0}, Zip: {1}",
e.Address.CountryRegion,
e.Address.PostalCode);
}
else
{
Console.WriteLine("Unknown address.");
}
}
}
}
Imports System.Device.Location
Module ResolveCivicAddressAsync
Public Sub ResolveCivicAddressAsync()
Dim watcher As GeoCoordinateWatcher
watcher = New System.Device.Location.GeoCoordinateWatcher(GeoPositionAccuracy.High)
Dim started As Boolean = False
watcher.MovementThreshold = 1.0 'set to one meter
started = watcher.TryStart(False, TimeSpan.FromMilliseconds(1000))
If started Then
Dim resolver As CivicAddressResolver = New CivicAddressResolver()
AddHandler resolver.ResolveAddressCompleted, AddressOf resolver_ResolveAddressCompleted
If Not watcher.Position.Location.IsUnknown Then
resolver.ResolveAddressAsync(watcher.Position.Location)
End If
End If
watcher.Start()
End Sub
Sub resolver_ResolveAddressCompleted(ByVal sender As Object, ByVal e As ResolveAddressCompletedEventArgs)
If Not e.Address.IsUnknown Then
Console.WriteLine("Country: {0}, Zip: {1}",
e.Address.CountryRegion,
e.Address.PostalCode)
Else
Console.WriteLine("Unknown address.")
End If
End Sub
Public Sub Main()
ResolveCivicAddressAsync()
Console.WriteLine("Enter any key to quit.")
Console.ReadLine()
End Sub
End Module
Opmerkingen
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door ResolveAddress(GeoCoordinate)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.