PeerWatcher 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
무선 범위 내에서 피어 앱을 동적으로 검색합니다.
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
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)
|
앱 기능 |
proximity
|
설명
FindAllPeersAsync 메서드를 사용하여 범위 내의 모든 피어 목록을 가져올 수 있습니다. 그러나 FindAllPeersAsync 메서드는 피어를 한 번 검색한 다음 완료합니다. 또는 PeerWatcher 클래스를 사용하여 피어가 발견되면 피어를 검색하고 업데이트를 받고 사용 가능한 피어 앱 목록을 증분 방식으로 업데이트할 수 있습니다. PeerWatcher는 범위 내에서 새 피어 앱을 지속적으로 검사하고 부실 피어 앱을 제거합니다. 새 피어 앱이 발견될 때 발생하는 Added 이벤트와 부실 피어 앱이 제거될 때 발생하는 Removed 이벤트를 처리하여 피어 앱 목록을 업데이트할 수 있습니다. PeerWatcher는 Stop 메서드 또는 PeerFinder.FindAllPeersAsync 또는 PeerFinder.ConnectAsync 메서드를 호출할 때까지 계속 검색합니다.
중요
Windows Phone 8.x 앱의 경우 열거형Completed, 추가됨 또는 업데이트된 이벤트 처리기 내에서 PeerFinder.ConnectAsync를 호출하지 못합니다. 대신 사용자가 피어에 연결하도록 명시적으로 선택한 경우와 같이 이러한 이벤트 처리기 외부에서 호출합니다.
PeerWatcher 클래스의 instance 만들려면 PeerFinder.Start 메서드를 호출한 다음 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;
}
}
속성
Status |
PeerWatcher 개체의 현재 상태를 가져옵니다. |
메서드
Start() |
무선 범위 내에서 피어 앱을 동적으로 검색하기 시작합니다. |
Stop() |
무선 범위 내에서 피어 앱에 대한 동적 검색을 중지합니다. |
이벤트
Added |
무선 범위 내에서 피어 앱이 발견되면 발생합니다. |
EnumerationCompleted |
스캔 작업이 완료되고 무선 범위 내의 모든 피어 앱이 발견된 후에 발생합니다. |
Removed |
피어 앱이 더 이상 무선 범위 내에 있지 않을 때 발생합니다. |
Stopped |
PeerWatcher 개체가 중지되었을 때 발생합니다. |
Updated |
무선 범위 내의 피어 앱에 대한 DisplayName 또는 DiscoveryData 가 변경된 경우에 발생합니다. |