public TOSResult execute() { TOSResult res = TOSResult.FAILED_OUTER_PROC; if (this.mState == TOSState.PROCESSING) { return(res); } this.mState = TOSState.PROCESSING; this.mRunning = true; this.mTask = Task.Run(() => { return(this.innerProcess()); }); if (this.mTask.Wait(TimeSpan.FromMilliseconds(this.mTimeout))) { res = this.mTask.Result; } else { res = TOSResult.FAILED_TIMEOUT; } this.stop(); return(res); }
public void stop() { mRunning = false; while (!mTask.IsCompleted) { ; } this.mState = TOSState.IDLE; }
public TimeoutSyncTask() { this.mRunning = false; this.mState = TOSState.IDLE; }