Only add or remove WorkerThread if needed

device-handlers
Clive Galway 2 years ago
parent 552b9c3b27
commit 5a9fa9d5d5

@ -36,7 +36,7 @@ namespace AutoHotInterception.DeviceHandlers
public void SubscribeKey(ushort code, MappingOptions mappingOptions)
{
KeyboardKeyMappings.TryAdd(code, mappingOptions);
if (!mappingOptions.Concurrent)
if (!mappingOptions.Concurrent && !WorkerThreads.ContainsKey(code))
{
WorkerThreads.TryAdd(code, new WorkerThread());
WorkerThreads[code].Start();
@ -52,7 +52,7 @@ namespace AutoHotInterception.DeviceHandlers
{
KeyboardKeyMappings.TryRemove(code, out var mappingOptions);
if (!mappingOptions.Concurrent)
if (!mappingOptions.Concurrent && WorkerThreads.ContainsKey(code))
{
WorkerThreads[code].Dispose();
WorkerThreads.TryRemove(code, out _);

Loading…
Cancel
Save