Example #1
0
 internal static AnimationControler.AnimePacket AnimeCustomPacket(string queueName, int sleepTime, CustomAnimeHandler method, int maxIteration, bool queue, int queueLevel, object qOwner, AnimationControler.FinalCallback finalCallback)
 {
     CustomThreadParam baseThreadParam = new CustomThreadParam();
     baseThreadParam.time = sleepTime;
     baseThreadParam.customMethod = method;
     baseThreadParam.MaxIteration = maxIteration;
     baseThreadParam.QueueLevel = queueLevel;
     baseThreadParam.finalCallback = finalCallback;
     baseThreadParam.queueName = queueName;
     return new AnimationControler.AnimePacket() { isQueue = queue && queueLevel >= 0, queueOwner = qOwner, method = Custom, threadParam = baseThreadParam };
 }
Example #2
0
 private static void Custom(object customThreadParam)
 {
     CustomThreadParam td = (CustomThreadParam) customThreadParam;
     try
     {
         if (td.MaxIteration <= 0) return;
         int i = 0;
         while (!td.animatorState.Canceled)
         {
             CustomObjectMethod(td.control, td.animatorState, td.customMethod);
             i++;
             if (i >= td.MaxIteration && td.MaxIteration > 0) break;
             Thread.Sleep(td.time);
         }
     }
     finally
     {
         td.controlState.AnimatorEnd(td.animatorState);
     }
 }