/// <summary> /// 获取redis回复的内容 /// </summary> /// <param name="timeOut">设置收取消息超时时间,默认30秒</param> /// <returns></returns> string GetRedisReply() { string str = string.Empty; bool loop = false; int timeCount = 0; do { timeCount++; str = _redisStream.ReadLine(); loop = string.IsNullOrEmpty(str); if (loop) { Thread.Sleep(1); if (timeCount >= _actionTimeout) { throw new TimeoutException("-Err:Operation is timeout!"); } } }while (loop); return(str); }
/// <summary> /// 获取redis回复的内容 /// </summary> /// <param name="timeOut">设置收取消息超时时间,默认30秒</param> /// <returns></returns> string GetRedisReply() { try { return(TaskHelper.Run((token) => { string str = string.Empty; do { str = _redisStream.ReadLine(); if (string.IsNullOrEmpty(str)) { Thread.Yield(); } else { break; } }while (!token.IsCancellationRequested); return str; }, _actionTimeout).Result); } catch (Exception ex) { return("-Err:GetRedisReply Timeout," + ex.Message); } }
/// <summary> /// 获取redis回复的内容 /// </summary> /// <param name="ctoken">设置收取消息超时时间,默认30秒</param> /// <returns></returns> string GetRedisReply(CancellationToken ctoken) { try { string str = string.Empty; do { str = _redisStream.ReadLine(); if (string.IsNullOrEmpty(str)) { Thread.Yield(); } else { break; } }while (!ctoken.IsCancellationRequested); return(str); } catch (Exception ex) { return("-Err:GetRedisReply Timeout," + ex.Message); } }
/// <summary> /// 获取redis回复的内容 /// </summary> /// <param name="timeOut">设置收取消息超时时间,默认30秒</param> /// <returns></returns> string GetRedisReply() { string str = string.Empty; bool loop = false; var beginTime = DateTimeHelper.Now; do { str = _redisStream.ReadLine(); loop = string.IsNullOrEmpty(str); if (loop) { Thread.Sleep(0); if ((DateTimeHelper.Now - beginTime).TotalMilliseconds > _actionTimeout) { throw new TimeoutException("-Err:Operation is timeout!"); } } }while (loop); return(str); }