コード例 #1
0
        public Test_Time()
        {
            // 假设我们有特殊的需求需要关闭此对象的更新可以调用
            // 如果可能尽可能在不再使用时调用此函数
            // Close();
            // 同样需要关闭一切进程中的更新可以使用此类的静态函数
            // TimeFlow.CloseAll();
            // 如果只是暂停的话 那么可以调用
            // Pause();
            // 再次恢复时间更新
            // Start();
            // 最后如果你需要查看此时update的状态话可以通过以下两个变量
            // isPause
            // isStop
            timeFlow = TimeFlow.Create(this);

            // 时间执行器
            // 了解了TimeFlow有时候觉得太繁琐
            // 项目中根本不需要使用到那么就可以使用此类
            // 这个类根据类似Task设计思想开发
            // 但是他们还是有些区别,注意不管是这类函数操作中不要在包含一些特别耗时的操作
            // 比如说 Thread.Sleep 这种
            TimeCaller caller = TimeCaller.Create(2000, 10000, true);

            // 执行函数可以通过这个函数进行绑定,也可以在构造对象的时候写入
            // 这个可以自行查看函数提示 我这边只是为了简单事例
            caller.CallMethod((long count) => { Console.WriteLine("Hello TimeCaller"); });

            // 接下来就是贯穿在以上两个类的一个重要类
            // TimeFix 时间修正类 当然需要特殊处理时间循环的时候可以单独使用这个类
            // 只需要告诉这个对象 想要的循环时间周期即可完成必要的时间修补
            // 注意此类没有沉睡Sleep函数 所以等待需要自己处理
            int     periodNow = 1000;
            TimeFix timeFix   = new TimeFix(1000);

            /* 这里我没有写Thread 那么就认为这个Thread开始 */
            // 如果在一个循环中 这个函数应该就在循环的最开始处
            timeFix.Begin();
            // 沉睡相应时间
            Thread.Sleep(periodNow);
            // 打印日志
            Console.WriteLine("Hello TimeFix");
            // 如果在一个循环中 这个函数应该在循环的最后结束
            periodNow = timeFix.End();
            /* 至此第一次Thread循环结束 第二次开始 */
            timeFix.Begin();
            Thread.Sleep(periodNow);
            Console.WriteLine("Hello TimeFix2");
            periodNow = timeFix.End();
            /* 以此循环往复 而periodNow的值会根据每次的耗时不同进行不断的修正 */
            timeFlow.Start();

            // 临时变量 测试时间流自动停止
            StartTempTime();
            // 需要gc回收一下
            // 此处gc不会影响当前大括号的其他定时器,因为这个函数域还没结束
            GC.Collect();
        }
コード例 #2
0
ファイル: Player1Agent.cs プロジェクト: suxf/EasySharpFrame
 public Player1Agent(Player1 self)
 {
     // 先处理代理数据构造函数,在处理代理构造
     Console.WriteLine(self.test);
     TimeFlow.Create(this).Start();
 }
コード例 #3
0
ファイル: PlayerAgent.cs プロジェクト: suxf/EasySharpFrame
 public PlayerAgent()
 {
     tf = TimeFlow.Create(this);
     tf.Start();
 }
コード例 #4
0
 public Time2()
 {
     TimeFlow.Create(this).Start();
 }