Esempio n. 1
0
 protected virtual void ExecuteSynchronously()
 {
     mBehaviorExecutePattern = BehaviorExecutePattern.Synchronization;
     Work();
 }
Esempio n. 2
0
 /// <summary>
 /// Starts the behavior with the specified synchronization pattern.
 /// </summary>
 /// <param name="synchronizationPattern">The synchronization pattern.</param>
 public virtual void Start(BehaviorExecutePattern synchronizationPattern)
 {
     if (mIsWorkFinished)
         return;
     switch (synchronizationPattern)
     {
         case BehaviorExecutePattern.Synchronization:
             ExecuteSynchronously();
             break;
         case BehaviorExecutePattern.Asynchronization:
             ExecuteAsynchronously();
             break;
     }
 }
Esempio n. 3
0
 protected virtual void ExecuteAsynchronously()
 {
     if (mAsynchronousWorkThread == null)
     {
         lock (mSyncRoot)
         {
             if (mAsynchronousWorkThread == null)
             {
                 mAsynchronousWorkThread = new Thread(Work);
             }
         }
     }
     mBehaviorExecutePattern = BehaviorExecutePattern.Asynchronization;
     mAsynchronousWorkThread.Start();
 }
Esempio n. 4
0
 public override void Initialize()
 {
     mDummyEventArgs = new EventArgs();
     mPlannedWorkPattern = BehaviorExecutePattern.Synchronization;
     Status = BehaviorStatus.Closed;
     mDependentBehaviors = new List<Behavior>();
     //initialize the event state to allow thread to continue
     mManualEvent = new ManualResetEvent(true);
     mBehaviorEntities = new Dictionary<Component, BehaviorEntityType>();
     mShouldPause = false;
     mShouldAbort = false;
     mIsWorkFinished=false;
     mDisposed = false;
     ProcessRate = 0;
     mProgressChangedEventArgs = new ProgressChangedEventArgs(mProcessRate);
 }