PeerWatcher.Added 이벤트
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
무선 범위 내에서 피어 앱이 발견되면 발생합니다.
// Register
event_token Added(TypedEventHandler<PeerWatcher, PeerInformation const&> const& handler) const;
// Revoke with event_token
void Added(event_token const* cookie) const;
// Revoke with event_revoker
PeerWatcher::Added_revoker Added(auto_revoke_t, TypedEventHandler<PeerWatcher, PeerInformation const&> const& handler) const;
public event TypedEventHandler<PeerWatcher,PeerInformation> Added;
function onAdded(eventArgs) { /* Your code */ }
peerWatcher.addEventListener("added", onAdded);
peerWatcher.removeEventListener("added", onAdded);
- or -
peerWatcher.onadded = onAdded;
Public Custom Event Added As TypedEventHandler(Of PeerWatcher, PeerInformation)
이벤트 유형
Windows 요구 사항
앱 기능 |
proximity
|
설명
중요
Windows Phone 8.x 앱의 경우 추가된 이벤트 처리기 내에서 PeerFinder.ConnectAsync를 호출하지 못합니다. 대신 사용자가 피어에 연결하도록 명시적으로 선택한 경우와 같이 이 이벤트 처리기 외부에서 호출합니다.
Start메서드를 호출하여 PeerWatcher를 시작하면 무선 범위 내에 있는 각 피어 앱에 대해 Addedevent가 발생합니다. PeerWatcher는 Stop메서드를 호출할 때까지 범위 내의 피어 앱을 계속 검사합니다. Addedevent를 사용하여 피어 앱을 찾을 때 사용자에게 표시할 수 있습니다.
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_Added(PeerWatcher sender, PeerInformation peerInfo)
{
var result = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
{
lock (this)
{
_discoveredPeers.Add(peerInfo);
}
});
}