public TimeBreaker(int breakTime, BreakResponse breakResponse = BreakResponse.Exception, [CallerMemberName] string memberName = null, [CallerFilePath] string filePath = null, [CallerLineNumber] int sourceLineNumber = 0) : this(TimeSpan.FromMilliseconds(breakTime), breakResponse, memberName, filePath, sourceLineNumber) { }
public TimeBreaker(TimeSpan breakTime, BreakResponse breakResponse = BreakResponse.Exception, [CallerMemberName] string memberName = null, [CallerFilePath] string filePath = null, [CallerLineNumber] int sourceLineNumber = 0) { #if DEBUG _breakResponse = breakResponse; _preparedMessage = $"Time limit of {breakTime} exceeded at {memberName}[{sourceLineNumber}]({filePath})."; _timer = new Timer(OnTick, null, breakTime, TimeSpan.FromMilliseconds(-1)); #endif }
public async Task <BreakResponse> Break() { await BeginRunStateTransition(); var fbb = BeginRequest(); BreakRequest.StartBreakRequest(fbb); int requestDataOffset = BreakRequest.EndBreakRequest(fbb); var response = await CommitRequest(fbb, RequestData.BreakRequest, requestDataOffset); System.Diagnostics.Debug.Assert(response.ResponseDataType == ResponseData.BreakResponse); var breakResponse = new BreakResponse(); response.GetResponseData(breakResponse); await CompleteRunStateTransition(RunState.Paused); return(breakResponse); }