Do nothing in timer callback when device locator is disposed

pull/5359/head
cvium 4 years ago
parent 8f99bdd07c
commit 610a30d791

@ -97,6 +97,11 @@ namespace Rssdp.Infrastructure
private async void OnBroadcastTimerCallback(object state) private async void OnBroadcastTimerCallback(object state)
{ {
if (IsDisposed)
{
return;
}
StartListeningForNotifications(); StartListeningForNotifications();
RemoveExpiredDevicesFromCache(); RemoveExpiredDevicesFromCache();
@ -180,8 +185,6 @@ namespace Rssdp.Infrastructure
/// <exception cref="ObjectDisposedException">Throw if the <see cref="DisposableManagedObjectBase.IsDisposed"/> ty is true.</exception> /// <exception cref="ObjectDisposedException">Throw if the <see cref="DisposableManagedObjectBase.IsDisposed"/> ty is true.</exception>
public void StartListeningForNotifications() public void StartListeningForNotifications()
{ {
ThrowIfDisposed();
_CommunicationsServer.RequestReceived -= CommsServer_RequestReceived; _CommunicationsServer.RequestReceived -= CommsServer_RequestReceived;
_CommunicationsServer.RequestReceived += CommsServer_RequestReceived; _CommunicationsServer.RequestReceived += CommsServer_RequestReceived;
_CommunicationsServer.BeginListeningForBroadcasts(); _CommunicationsServer.BeginListeningForBroadcasts();
@ -515,11 +518,6 @@ namespace Rssdp.Infrastructure
private void RemoveExpiredDevicesFromCache() private void RemoveExpiredDevicesFromCache()
{ {
if (this.IsDisposed)
{
return;
}
DiscoveredSsdpDevice[] expiredDevices = null; DiscoveredSsdpDevice[] expiredDevices = null;
lock (_Devices) lock (_Devices)
{ {

Loading…
Cancel
Save