mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-05 15:55:02 +00:00
#671 Updates to GenericQueue to resolve issues when stopping program
This commit is contained in:
@@ -150,13 +150,13 @@ namespace PepperDash.Essentials.Core.Queues
|
||||
_delayEnabled = pacing > 0;
|
||||
_delayTime = pacing;
|
||||
|
||||
//CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
|
||||
//{
|
||||
// if (programEvent != eProgramStatusEventType.Stopping)
|
||||
// return;
|
||||
CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
|
||||
{
|
||||
if (programEvent != eProgramStatusEventType.Stopping)
|
||||
return;
|
||||
|
||||
// Dispose(true);
|
||||
//};
|
||||
Dispose(true);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -232,9 +232,20 @@ namespace PepperDash.Essentials.Core.Queues
|
||||
if (disposing)
|
||||
{
|
||||
Debug.Console(2, this, "Disposing...");
|
||||
_queue.Clear();
|
||||
Enqueue(null);
|
||||
_worker.Join();
|
||||
if (_queue != null && !_queue.Disposed)
|
||||
{
|
||||
_queue.Clear();
|
||||
Enqueue(null);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// if (_queue == null)
|
||||
// Debug.Console(2, this, "_queue is null");
|
||||
// else
|
||||
// Debug.Console(2, this, "_queue disposed: {0}", _queue.Disposed);
|
||||
//}
|
||||
//_worker.Join();
|
||||
_worker.Abort();
|
||||
_waitHandle.Close();
|
||||
}
|
||||
|
||||
@@ -404,13 +415,13 @@ namespace PepperDash_Essentials_Core.Queues
|
||||
_delayEnabled = pacing > 0;
|
||||
_delayTime = pacing;
|
||||
|
||||
//CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
|
||||
//{
|
||||
// if (programEvent != eProgramStatusEventType.Stopping)
|
||||
// return;
|
||||
CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
|
||||
{
|
||||
if (programEvent != eProgramStatusEventType.Stopping)
|
||||
return;
|
||||
|
||||
// Dispose(true);
|
||||
//};
|
||||
Dispose(true);
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -480,9 +491,20 @@ namespace PepperDash_Essentials_Core.Queues
|
||||
if (disposing)
|
||||
{
|
||||
Debug.Console(2, this, "Disposing...");
|
||||
_queue.Clear();
|
||||
Enqueue(null);
|
||||
_worker.Join();
|
||||
if (_queue != null && !_queue.Disposed)
|
||||
{
|
||||
_queue.Clear();
|
||||
Enqueue(null);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// if (_queue == null)
|
||||
// Debug.Console(2, this, "_queue is null");
|
||||
// else
|
||||
// Debug.Console(2, this, "_queue disposed: {0}", _queue.Disposed);
|
||||
//}
|
||||
//_worker.Join();
|
||||
_worker.Abort();
|
||||
_waitHandle.Close();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user