Пример #1
0
        /// <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);
        }
Пример #2
0
 /// <summary>
 /// リクエストを出します。
 /// </summary>
 public void SendRequest <TReq, TRes>(TReq request,
                                      PbResponseHandler <TRes> handler,
                                      bool isOutLog = true)
     where TReq : class
 {
     SendRequest(request, DefaultRequestTimeout, handler, isOutLog);
 }