none
麦克风录放音中的计时器问题 RRS feed

  • 问题

  •  下面的代码是关于麦克风录放音的,我想问的是

    1.为什么XNA游戏会有这样一个刷新频率,如果不去考虑,会有什么后果?

    2.dt.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } };

    这句代码怎么理解,尤其是FrameworkDispatcher.Update(),作用是什么?整句话实现什么功能?

             // Timer to simulate the XNA Game Studio game loop (Microphone is from XNA Game Studio)
                DispatcherTimer dt = new DispatcherTimer();
                dt.Interval = TimeSpan.FromMilliseconds(33);
                dt.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } };
                dt.Start ();  

    2012年7月23日 9:19

答案

  • 你好,

    这句话是更新程序状态.

    举个例子吧,如果是个Silverlight应用程序,那么是事件驱动的,就是当点击了按钮之后,那么才触发事件,

    但是,游戏应用却不是,无论你点不点按钮,一直在刷新界面,一般分为两步走,代码更新和界面更新

    当你使用FrameworkDispatcher.Update(); 的时候,你代码的更新会显示到界面上.

    • 已标记为答案 Otomii Lu 2012年7月24日 5:30
    2012年7月24日 2:36

全部回复

  • 你好,

    这句话是更新程序状态.

    举个例子吧,如果是个Silverlight应用程序,那么是事件驱动的,就是当点击了按钮之后,那么才触发事件,

    但是,游戏应用却不是,无论你点不点按钮,一直在刷新界面,一般分为两步走,代码更新和界面更新

    当你使用FrameworkDispatcher.Update(); 的时候,你代码的更新会显示到界面上.

    • 已标记为答案 Otomii Lu 2012年7月24日 5:30
    2012年7月24日 2:36
  • 非常感谢!弄明白了!

    2012年7月24日 4:14