From b558a57248587d330e10e9701aa4aa1ecf274ebe Mon Sep 17 00:00:00 2001 From: parallelbgls Date: Thu, 18 May 2017 22:04:59 +0800 Subject: [PATCH] Bug Fix --- Modbus.Net/src/Base.Common/TaskManager.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Modbus.Net/src/Base.Common/TaskManager.cs b/Modbus.Net/src/Base.Common/TaskManager.cs index dd3bf71..c7dbe25 100644 --- a/Modbus.Net/src/Base.Common/TaskManager.cs +++ b/Modbus.Net/src/Base.Common/TaskManager.cs @@ -468,7 +468,7 @@ namespace Modbus.Net /// 任务 /// /// 任务返回值的类型 - public class TaskItem : ITaskItem, IEquatable>, ICloneable + public class TaskItem : ITaskItem, IEquatable> { /// /// 定时器 @@ -625,9 +625,9 @@ namespace Modbus.Net /// 拷贝实例 /// /// 拷贝的实例 - public object Clone() + public TaskItem Clone() { - return MemberwiseClone(); + return MemberwiseClone() as TaskItem; } } @@ -951,7 +951,7 @@ namespace Modbus.Net foreach (var machine in _machines) { Thread.Sleep(10); - ans &= machine.InvokeTimer(item.Clone() as TaskItem); + ans &= machine.InvokeTimer(item.Clone()); } } return ans; @@ -1064,7 +1064,7 @@ namespace Modbus.Net lock (_machines) { foreach (var machine in _machines) - tasks.Add(_tasks.StartNew(async () => await machine.InvokeOnce(item.Clone() as TaskItem)).Unwrap()); + tasks.Add(_tasks.StartNew(async () => await machine.InvokeOnce(item.Clone())).Unwrap()); } var ans = await Task.WhenAll(tasks); return ans.All(p => p); @@ -1081,7 +1081,7 @@ namespace Modbus.Net { var machine = _machines.FirstOrDefault(p => p.Machine.Id.Equals(machineId)); if (machine != null) - return await machine.InvokeOnce(item.Clone() as TaskItem); + return await machine.InvokeOnce(item.Clone()); return false; } @@ -1096,7 +1096,7 @@ namespace Modbus.Net { var machine = _machines.FirstOrDefault(p => p.Machine.Id.Equals(machineId)); if (machine != null) - return machine.InvokeTimer(item.Clone() as TaskItem); + return machine.InvokeTimer(item.Clone()); return false; }