コード例 #1
0
ファイル: Scheduler.cs プロジェクト: Fortifier42/Voxalia
 public ASyncScheduleItem ReplaceOrFollowWith(ASyncScheduleItem item)
 {
     lock (Locker)
     {
         if (FollowUp != null)
         {
             return(FollowUp.ReplaceOrFollowWith(item));
         }
         if (Started)
         {
             if (Done)
             {
                 item.RunMe();
                 return(item);
             }
             else
             {
                 FollowUp = item;
                 return(item);
             }
         }
         else
         {
             MyAction = item.MyAction;
             FollowUp = item.FollowUp;
             return(this);
         }
     }
 }
コード例 #2
0
ファイル: Scheduler.cs プロジェクト: Morphan1/Voxalia
 public ASyncScheduleItem ReplaceOrFollowWith(ASyncScheduleItem item)
 {
     lock (Locker)
     {
         if (FollowUp != null)
         {
             return FollowUp.ReplaceOrFollowWith(item);
         }
         if (Started)
         {
             if (Done)
             {
                 item.RunMe();
                 return item;
             }
             else
             {
                 FollowUp = item;
                 return item;
             }
         }
         else
         {
             MyAction = item.MyAction;
             FollowUp = item.FollowUp;
             return this;
         }
     }
 }
コード例 #3
0
ファイル: Scheduler.cs プロジェクト: Fortifier42/Voxalia
        public ASyncScheduleItem StartASyncTask(Action a)
        {
            ASyncScheduleItem asyncer = new ASyncScheduleItem();

            asyncer.MyAction = a;
            asyncer.RunMe();
            return(asyncer);
        }
コード例 #4
0
ファイル: Scheduler.cs プロジェクト: Fortifier42/Voxalia
 private void runInternal()
 {
     MyAction.Invoke();
     lock (Locker)
     {
         Done = true;
     }
     if (FollowUp != null)
     {
         FollowUp.RunMe();
     }
 }
コード例 #5
0
ファイル: Scheduler.cs プロジェクト: Morphan1/Voxalia
 public void FollowWith(ASyncScheduleItem item)
 {
     lock (Locker)
     {
         if (Done)
         {
             item.RunMe();
         }
         else
         {
             FollowUp = item;
         }
     }
 }
コード例 #6
0
ファイル: Scheduler.cs プロジェクト: Fortifier42/Voxalia
 public void FollowWith(ASyncScheduleItem item)
 {
     lock (Locker)
     {
         if (Done)
         {
             item.RunMe();
         }
         else
         {
             FollowUp = item;
         }
     }
 }
コード例 #7
0
ファイル: Scheduler.cs プロジェクト: Morphan1/Voxalia
 public ASyncScheduleItem StartASyncTask(Action a)
 {
     ASyncScheduleItem asyncer = new ASyncScheduleItem();
     asyncer.MyAction = a;
     asyncer.RunMe();
     return asyncer;
 }