PeerWatcher Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Individua in modo dinamico le app peer all'interno dell'intervallo wireless.
public ref class PeerWatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PeerWatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PeerWatcher
Public NotInheritable Class PeerWatcher
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Funzionalità dell'app |
proximity
|
Commenti
È possibile utilizzare il metodo FindAllPeersAsync per ottenere un elenco di tutti i peer all'interno dell'intervallo. Tuttavia, il metodo FindAllPeersAsync analizza i peer una volta e quindi viene completato. In alternativa, è possibile usare la classe PeerWatcher per analizzare i peer e ottenere gli aggiornamenti man mano che vengono trovati e aggiornare in modo incrementale l'elenco di app peer disponibili. PeerWatcher analizza continuamente le nuove app peer all'interno dell'intervallo e rimuove le app peer non aggiornate. È possibile aggiornare l'elenco di app peer gestendo l'evento Added , che si verifica quando viene trovata una nuova app peer e l'evento Removed che si verifica quando viene rimossa un'app peer non aggiornata. PeerWatcher continua a eseguire l'analisi finché non chiami il metodo Stop o i metodi PeerFinder.FindAllPeersAsync o PeerFinder.ConnectAsync .
Importante
Per Windows Phone app 8.x, la chiamata a PeerFinder.ConnectAsync da un gestore eventi EnumerationCompleted, Added o Updated avrà esito negativo. Al contrario, chiamarlo all'esterno di questi gestori eventi, ad esempio quando l'utente ha scelto in modo esplicito di connettersi a un peer.
Per creare un'istanza della classe PeerWatcher, chiamare il metodo PeerFinder.Start e quindi chiamare il metodo CreateWatcher .
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;
}
}
Proprietà
Status |
Ottiene lo stato corrente dell'oggetto PeerWatcher . |
Metodi
Start() |
Iniziare a cercare in modo dinamico le app peer all'interno dell'intervallo wireless. |
Stop() |
Arrestare la ricerca dinamica di app peer all'interno dell'intervallo wireless. |
Eventi
Added |
Si verifica quando un'app peer viene trovata all'interno dell'intervallo wireless. |
EnumerationCompleted |
Si verifica dopo il completamento di un'operazione di analisi e dopo che sono state trovate tutte le app peer all'interno dell'intervallo wireless. |
Removed |
Si verifica quando un'app peer non è più compresa nell'intervallo wireless. |
Stopped |
Si verifica quando l'oggetto PeerWatcher è stato arrestato. |
Updated |
Si verifica quando displayName o DiscoveryData per un'app peer all'interno dell'intervallo wireless è cambiato. |