public static void UnSubscribe(string instrumentID, IQuotationReceiver receiver) { lock (subscribeDic) { DoUnsub(instrumentID, receiver); } }
public static void UnSubscribe(IEnumerable <string> instrumentIDs, IQuotationReceiver receiver) { lock (subscribeDic) { foreach (var instrumentID in instrumentIDs) { DoUnsub(instrumentID, receiver); } } }
public static void UnSubscribe(IEnumerable<string> instrumentIDs, IQuotationReceiver receiver) { lock (subscribeDic) { foreach (var instrumentID in instrumentIDs) { DoUnsub(instrumentID, receiver); } } }
private static void DoUnsub(string instrumentID, IQuotationReceiver receiver) { List <IQuotationReceiver> receivers; if (!subscribeDic.TryGetValue(instrumentID, out receivers)) { return; } receivers.Remove(receiver); if (receivers.Count != 0) { return; } subscribeDic.Remove(instrumentID); }
public static void Subscribe(string instrumentID, IQuotationReceiver receiver) { lock (subscribeDic) { List<IQuotationReceiver> receivers; if (!subscribeDic.TryGetValue(instrumentID, out receivers)) { receivers = new List<IQuotationReceiver>() { receiver }; subscribeDic.Add(instrumentID, receivers); return; } if (!receivers.Contains(receiver)) { receivers.Add(receiver); } } }
public static void Subscribe(string instrumentID, IQuotationReceiver receiver) { lock (subscribeDic) { List <IQuotationReceiver> receivers; if (!subscribeDic.TryGetValue(instrumentID, out receivers)) { receivers = new List <IQuotationReceiver>() { receiver }; subscribeDic.Add(instrumentID, receivers); return; } if (!receivers.Contains(receiver)) { receivers.Add(receiver); } } }
private static void DoUnsub(string instrumentID, IQuotationReceiver receiver) { List<IQuotationReceiver> receivers; if (!subscribeDic.TryGetValue(instrumentID, out receivers)) { return; } receivers.Remove(receiver); if (receivers.Count != 0) { return; } subscribeDic.Remove(instrumentID); }