예제 #1
0
 public static void SetupTickFunction(TimeoutCallback tc, Sirikata.Runtime.Time t)
 {
     long us=t.microseconds();
     TimeoutCallback wrapped_tc=null;
     long estLocalTime=GetLocalTime().microseconds()+us*2;
     wrapped_tc=new TimeoutCallback(delegate(){
         try {
             tc();
         }finally {
             long delta=estLocalTime-GetLocalTime().microseconds();
             estLocalTime+=us;
             if (delta>0) {
                 iAsyncWait(wrapped_tc,new TimeClass((ulong)delta));
             }else {
                 iAsyncWait(wrapped_tc,new TimeClass());
             }
         }
     });
     iAsyncWait(wrapped_tc,t.toClass());
 }
예제 #2
0
 internal static long TimeTicks(Sirikata.Runtime.Time t)
 {
     return t.microseconds();
 }