diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
index 1f27fe1e..05757213 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
@@ -15,23 +15,36 @@ namespace PepperDash_Essentials_Core.Queues
protected readonly Thread _worker;
protected readonly CEvent _waitHandle = new CEvent();
- private readonly bool _delayEnabled;
- private readonly int _delayTime;
+ private bool _delayEnabled;
+ private int _delayTime;
///
/// If the instance has been disposed.
///
public bool Disposed { get; private set; }
+ ///
+ /// Constructor with no thread priority
+ ///
+ ///
+ public GenericQueue(string key)
+ : this(key, Thread.eThreadPriority.NotSet)
+ {
+
+ }
+
///
/// Constructor for generic queue with no pacing
///
/// Key
- public GenericQueue(string key)
+ public GenericQueue(string key, Thread.eThreadPriority priority)
{
_key = key;
_queue = new CrestronQueue();
- _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running);
+ _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running)
+ {
+ Priority = priority
+ };
CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
{
@@ -49,11 +62,28 @@ namespace PepperDash_Essentials_Core.Queues
/// Pacing in ms between actions
public GenericQueue(string key, int pacing)
: this(key)
+ {
+ SetDelayValues(pacing);
+ }
+
+ ///
+ /// Constructor with pacing and priority
+ ///
+ ///
+ ///
+ ///
+ public GenericQueue(string key, int pacing, Thread.eThreadPriority priority)
+ : this(key, priority)
+ {
+ SetDelayValues(pacing);
+ }
+
+ private void SetDelayValues(int pacing)
{
_delayEnabled = pacing > 0;
_delayTime = pacing;
}
-
+
///
/// Thread callback
///
@@ -83,7 +113,7 @@ namespace PepperDash_Essentials_Core.Queues
}
catch (Exception ex)
{
- Debug.ConsoleWithLog(0, this, "Caught an exception in the Queue {0}\r{1}\r{2}", ex.Message, ex.InnerException, ex.StackTrace);
+ Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Caught an exception in the Queue {0}\r{1}\r{2}", ex.Message, ex.InnerException, ex.StackTrace);
}
}
else _waitHandle.Wait();