public bool TryRemoveHop(ITransmissionHop hop) { try { WeakReference <ITransmissionHop> v; return(_dictHop.TryRemove(hop.HopName, out v)); } catch { throw; } }
public void AddHop(ITransmissionHop hop) { try { _dictHop.AddOrUpdate(hop.HopName, new WeakReference <ITransmissionHop>(hop), (k, v) => { return(v); }); hop.EnterHop(); } catch { throw; } }
public void RemoveHop(ITransmissionHop hop) { try { WeakReference <ITransmissionHop> v; //while (!_dictHop.TryRemove(hop.HopName, out v)) //{ // Thread.Sleep(50); //} if (!_dictHop.TryRemove(hop.HopName, out v)) { return; } hop.LeaveHop(); } catch { throw; } }