Пример #1
0
        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);
        }
Пример #2
0
 public void stop()
 {
     mRunning = false;
     while (!mTask.IsCompleted)
     {
         ;
     }
     this.mState = TOSState.IDLE;
 }
Пример #3
0
 public TimeoutSyncTask()
 {
     this.mRunning = false;
     this.mState   = TOSState.IDLE;
 }