1
0
mirror of https://github.com/DarthAffe/OBD.NET.git synced 2025-12-13 01:08:30 +00:00
Roman Lumetsberger 2017-08-18 16:04:51 +02:00
parent d2c2b8456f
commit 6728f6413d

View File

@ -222,7 +222,9 @@ namespace OBD.NET.Devices
while (!commandCancellationToken.IsCancellationRequested) while (!commandCancellationToken.IsCancellationRequested)
{ {
currentCommand = null; currentCommand = null;
if(commandQueue.TryTake(out currentCommand, Timeout.Infinite, commandCancellationToken.Token)) try
{
if (commandQueue.TryTake(out currentCommand, Timeout.Infinite, commandCancellationToken.Token))
{ {
Logger?.WriteLine("Writing Command: '" + currentCommand.CommandText.Replace('\r', '\'') + "'", OBDLogLevel.Verbose); Logger?.WriteLine("Writing Command: '" + currentCommand.CommandText.Replace('\r', '\'') + "'", OBDLogLevel.Verbose);
@ -239,6 +241,9 @@ namespace OBD.NET.Devices
commandFinishedEvent.WaitOne(); commandFinishedEvent.WaitOne();
} }
} }
catch (OperationCanceledException)
{/*ignore, because it is thrown when the cancellation token is canceled*/}
}
} }
/// <summary> /// <summary>
@ -246,6 +251,7 @@ namespace OBD.NET.Devices
/// </summary> /// </summary>
public virtual void Dispose() public virtual void Dispose()
{ {
commandQueue.CompleteAdding();
commandCancellationToken?.Cancel(); commandCancellationToken?.Cancel();
commandWorkerTask?.Wait(); commandWorkerTask?.Wait();
Connection?.Dispose(); Connection?.Dispose();