/// <summary> /// タイムアウト付でリクエストを出します。 /// </summary> public void SendRequest <TReq, TRes>(TReq request, TimeSpan timeout, PbResponseHandler <TRes> handler, bool isOutLog = true) where TReq : class { if (request == null) { return; } var sendData = new PbSendData(request); var id = GetNextSendId(); var reqData = new PbRequestData <TReq, TRes>() { Id = id, Connection = this, ResponseReceived = handler, }; reqData.SetTimeout(timeout); // 未処理のリクエストとして、リストに追加します。 lock (this.requestDataDic) { this.requestDataDic.Add(id, reqData); } // データを送信します。 SendDataInternal(id, false, sendData, isOutLog); }
/// <summary> /// リクエストを出します。 /// </summary> public void SendRequest <TReq, TRes>(TReq request, PbResponseHandler <TRes> handler, bool isOutLog = true) where TReq : class { SendRequest(request, DefaultRequestTimeout, handler, isOutLog); }