Condividi tramite


PeerWatcher Classe

Definizione

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à
Object Platform::Object IInspectable PeerWatcher
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.

Si applica a

Vedi anche