Do nothing in timer callback when device locator is disposed

This commit is contained in:
cvium 2021-03-03 15:13:43 +01:00
parent 8f99bdd07c
commit 610a30d791
1 changed files with 6 additions and 8 deletions

View File

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