PeerWatcher.EnumerationCompleted Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce una vez completada una operación de examen y se han encontrado todas las aplicaciones del mismo nivel dentro del intervalo inalámbrico.
// 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)
Tipo de evento
TypedEventHandler<PeerWatcher,IInspectable>
Requisitos de Windows
Características de aplicaciones |
proximity
|
Comentarios
El evento EnumerationCompleted se genera cuando se completa una enumeración que busca aplicaciones del mismo nivel dentro del intervalo.
Importante
Para Windows Phone aplicaciones 8.x, se producirá un error al llamar a PeerFinder.ConnectAsync desde un controlador de eventos EnumerationCompleted. En su lugar, llámalo fuera de este controlador de eventos, por ejemplo, cuando el usuario ha elegido explícitamente conectarse a un elemento del mismo nivel.
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.
}
}
});
}