PeerWatcher.EnumerationCompleted Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt auf, nachdem ein Scanvorgang abgeschlossen ist und alle Peer-Apps im drahtlosen Bereich gefunden wurden.
// Register
event_token EnumerationCompleted(TypedEventHandler<PeerWatcher, IInspectable const&> const& handler) const;
// Revoke with event_token
void EnumerationCompleted(event_token const* cookie) const;
// Revoke with event_revoker
PeerWatcher::EnumerationCompleted_revoker EnumerationCompleted(auto_revoke_t, TypedEventHandler<PeerWatcher, IInspectable const&> const& handler) const;
public event TypedEventHandler<PeerWatcher,object> EnumerationCompleted;
function onEnumerationCompleted(eventArgs) { /* Your code */ }
peerWatcher.addEventListener("enumerationcompleted", onEnumerationCompleted);
peerWatcher.removeEventListener("enumerationcompleted", onEnumerationCompleted);
- or -
peerWatcher.onenumerationcompleted = onEnumerationCompleted;
Public Custom Event EnumerationCompleted As TypedEventHandler(Of PeerWatcher, Object)
Ereignistyp
TypedEventHandler<PeerWatcher,IInspectable>
Windows-Anforderungen
App-Funktionen |
proximity
|
Hinweise
Das EnumerationCompleted-Ereignis wird ausgelöst, wenn eine Enumeration, die nach Peer-Apps innerhalb des Bereichs sucht, abgeschlossen ist.
Wichtig
Bei Windows Phone 8.x-Apps schlägt der Aufruf von PeerFinder.ConnectAsync aus einem EnumerationCompleted-Ereignishandler fehl. Rufen Sie ihn stattdessen außerhalb dieses Ereignishandlers auf, z. B. wenn der Benutzer explizit eine Verbindung mit einem Peer hergestellt hat.
private PeerWatcher _peerWatcher;
private bool _peerWatcherIsRunning = false;
private bool _peerFinderStarted = false;
// The list of peers discovered by the PeerWatcher.
ObservableCollection<PeerInformation> _discoveredPeers = new ObservableCollection<PeerInformation>();
void PeerFinder_StartPeerWatcher(object sender, RoutedEventArgs e)
{
if (!_peerFinderStarted)
{
// PeerFinder must be started first.
return;
}
if (_peerWatcherIsRunning)
{
// PeerWatcher is already running.
return;
}
try
{
if (_peerWatcher == null)
{
_peerWatcher = PeerFinder.CreateWatcher();
// Add PeerWatcher event handlers. Only add handlers once.
_peerWatcher.Added += PeerWatcher_Added;
_peerWatcher.Removed += PeerWatcher_Removed;
_peerWatcher.Updated += PeerWatcher_Updated;
_peerWatcher.EnumerationCompleted += PeerWatcher_EnumerationCompleted;
_peerWatcher.Stopped += PeerWatcher_Stopped;
}
// Empty the list of discovered peers.
_discoveredPeers.Clear();
// Start the PeerWatcher.
_peerWatcher.Start();
_peerWatcherIsRunning = true;
}
catch (Exception ex)
{
// Exceptions can occur if PeerWatcher.Start is called multiple times or
// PeerWatcher.Start is called the PeerWatcher is stopping.
}
}
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
if (_peerWatcher != null)
{
// Remove event handlers.
_peerWatcher.Added -= PeerWatcher_Added;
_peerWatcher.Removed -= PeerWatcher_Removed;
_peerWatcher.Updated -= PeerWatcher_Updated;
_peerWatcher.EnumerationCompleted -= PeerWatcher_EnumerationCompleted;
_peerWatcher.Stopped -= PeerWatcher_Stopped;
_peerWatcher = null;
}
}
private void PeerWatcher_EnumerationCompleted(PeerWatcher sender, object o)
{
var result = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
{
lock (this)
{
if (_discoveredPeers.Count == 0)
{
// No peers discovered for this enumeration.
}
}
});
}