Merge pull request #1665 from markusstoll/disposeFix

fix dispose bug
This commit is contained in:
Hylke Bons 2015-10-15 18:21:56 -04:00
commit 05edb0dbf4
2 changed files with 16 additions and 7 deletions

View file

@ -71,14 +71,15 @@ namespace SparkleLib {
Server = server;
this.channels.Add (folder_identifier);
this.reconnect_timer.Elapsed += delegate {
if (!IsConnected && !IsConnecting)
Reconnect ();
};
this.reconnect_timer.Elapsed += OnTimerElapsed;
this.reconnect_timer.Start ();
}
private void OnTimerElapsed(object sender, EventArgs args)
{
if (!IsConnected && !IsConnecting)
Reconnect ();
}
public void Announce (SparkleAnnouncement announcement)
{
@ -166,7 +167,11 @@ namespace SparkleLib {
{
if (this.reconnect_timer != null) {
this.reconnect_timer.Stop ();
this.reconnect_timer.Elapsed -= OnTimerElapsed;
this.reconnect_timer.Dispose ();
this.reconnect_timer = null;
}
}

View file

@ -613,8 +613,12 @@ namespace SparkleLib {
public void Dispose ()
{
this.remote_timer.Stop ();
this.remote_timer.Dispose ();
if (remote_timer != null) {
this.remote_timer.Elapsed -= RemoteTimerElapsedDelegate;
this.remote_timer.Stop ();
this.remote_timer.Dispose ();
this.remote_timer = null;
}
this.listener.Disconnected -= ListenerDisconnectedDelegate;
this.listener.AnnouncementReceived -= ListenerAnnouncementReceivedDelegate;