fix dispose bug

This commit is contained in:
Markus Stoll 2015-10-13 17:02:22 +02:00 committed by Markus Stoll
parent e7c7f9649c
commit c25b87e4eb
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;