/// <summary> /// 預設實作是以ThreadPool的方式傳送資訊 /// </summary> /// <param name="client">要接收資訊的<see cref="IInformationClient{TInfo}"/></param> /// <param name="info">要傳送的資訊</param> protected virtual void SendInformation(IInformationClient <TInfo> client, TInfo info) { ThreadPool.QueueUserWorkItem(PublishToClient, new PublishInfo <TInfo>() { Info = info, Client = client }); }
/// <summary> /// Client跟資料提供中心取消訂閱指定的資訊 /// </summary> /// <param name="client">實作<see cref="IInformationClient{TInfo}"/>的資料接收者</param> /// <param name="infoKey">要取消訂閱的Key</param> /// <returns>成功與否</returns> public bool ClientUnSubscribe(IInformationClient <TInfo> client, TInfoKey infoKey) { try { subClients.Remove(infoKey, client, rwlSubClients); return(true); } catch (Exception exp) { LogSystem.Instance.Error(exp.ToString()); return(false); } }