首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏我和未来有约会

    Silverlight 2 has a Timer (DispatcherTimer)

    Timer.TimerFiredHandler(t_TimerFired); t.StartTimer(); void t_TimerFired() { // Do Stuff here. } 现在可以使用DispatcherTimer : System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer(); dt.Interval

    66690发布于 2018-01-16
  • 来自专栏林德熙的博客

    dotnet 读 WPF 源代码 聊聊 DispatcherTimer 的实现

    至于 DispatcherTimer 里面有哪些 API 呢,就抄 WPF 的设计好了 这里有一个问题是,假定我使用的是 DispatcherTimer 有多个,我使用其中的一个 DispatcherTimer 为了实现此功能,咱也就需要有一个集合用来管理当前主线程所有的 DispatcherTimer 对象,用来了解在收到 WM_Timer 需要调用的 DispatcherTimer 对象有哪些 这个 DispatcherTimer 为了了解哪个 DispatcherTimer 需要被执行,就需要让 DispatcherTimer 记录两个信息,一个是距离下次执行的时间和调用执行 Start 函数的时间。 当然,从这里也可以看到,即使在业务代码里面没有对 DispatcherTimer 进行引用,但是只要这个 DispatcherTimer 还在运行,那么 DispatcherTimer 的对象就不会被释放 这部分逻辑实现太简单了,这里就不告诉大家了 以上大概就是 DispatcherTimer 的核心逻辑,可以看到 DispatcherTimer 里面的细节还是很多的。

    97630编辑于 2021-12-24
  • 来自专栏张善友的专栏

    Silverlight 2 DispatcherTimer和通过XAML创建UI元素

    UserControl     {         private TextBlock textBlock1;         private System.Windows.Threading.DispatcherTimer 该计时器的间隔事件也是Tick事件             timer = new System.Windows.Threading.DispatcherTimer();             timer.Interval 主要是学习两项内容:通过XamlReader类的Load方法,动态创建UI元素和DispatcherTimer。 Silverlight 2): http://www.cnblogs.com/worksguo/archive/2008/03/07/1094347.html Silverlight2.0中的计时器类DispatcherTimer ——不再使用Storyboard计时器 http://www.cnblogs.com/gowhere/archive/2008/03/11/silverlight2_dispatchertimer.html

    1.1K50发布于 2018-01-19
  • 来自专栏林德熙的博客

    WPF 如何知道当前有多少个 DispatcherTimer 在运行

    在 WPF 调试中,对于 DispatcherTimer 定时器的执行,没有直观的调试方法。 本文来告诉大家如何在 WPF 中调试当前主线程有多少个 DispatcherTimer 在运行 在 WPF 中,如果有 DispatcherTimer 定时器在执行,将会影响到主线程的执行,将会让主线程诡异忙碌 }; dispatcherTimer.Start(); } 假定需要调试在进入 Button_OnClick 方法,当前主线程有多少 DispatcherTimer System.Windows.Threading.DispatcherTimer.Start 函数里面,当然,这只是一个例子 这样在触发 DispatcherTimer.Start 函数将会进入断点 ,可以在函数断点里面输入 System.Windows.Threading.DispatcherTimer.DispatcherTimer 调试是哪个业务创建 DispatcherTimer 对象 本文所有代码放在

    1.3K30编辑于 2021-12-24
  • 来自专栏林德熙的博客

    WPF 如何知道当前有多少个 DispatcherTime 在运行

    }; dispatcherTimer.Start(); } 假定需要调试在进入 Button_OnClick 方法,当前主线程有多少 DispatcherTime 原因是 System.Windows.Threading.DispatcherTimer 定义在 WindowsBase 程序集 接下来在断点窗口里面,点击新建函数断点 ? 输入调试的函数,进行断点,如断点放在 System.Windows.Threading.DispatcherTimer.Start 函数里面,当然,这只是一个例子 ? 通过调用堆栈即可了解到当前是哪个模块调用了 DispatcherTimer.Start 函数 ? ,可以在函数断点里面输入 System.Windows.Threading.DispatcherTimer.DispatcherTimer 调试是哪个业务创建 DispatcherTimer 对象 本文所有代码放在

    1.4K30发布于 2021-04-28
  • 来自专栏Kiba518

    WPF游戏开发——小鸡快跑

    在WINFORM里,有TIMER可以进行模拟帧,可是在wpf里没有timer这个类,于是我们使用System.Windows.Threading.DispatcherTimer。 如下: dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 30); dispatcherTimer.Start(); 在DispatcherTimer的事件里进行判断和移动操作。

    95130发布于 2019-05-25
  • 来自专栏Harper的碎碎念

    浅谈 .NET 与 Qt Timer 实现

    .NET Timer 分为两种,一种是 System.Windows.Threading.DispatcherTimer , 另外一种是System.Timers.Timer 。 System.Windows.Threading.DispatcherTimer .NET Framework 相关源码路径: System\Windows\Threading\DispatcherTimer.cs System\Windows\Threading\Dispatcher.cs System\Windows\Threading\DispatcherOperation.cs 简要实现原理:在每次新增 DispatcherTimer 接下来就要关注 Dispatcher 了,当 Dispatcher 新增、删除、响应 Timer 事件以及 DispatcherTimer 调整时间间隔的时候,会调用 UpdateWin32Timer( ) , 这个方法会在当前 Dispatcher 的 Timer List 中检索最近要触发的 DispatcherTimer,如果当前没有调用过 SetTimer() 或者调用过的 SetTimer 时间间隔比当前最近要触发的长

    1.8K30发布于 2021-07-27
  • 来自专栏czwy的博客

    .NET中有多少种定时器

    分别为: System.Windows.Forms.Timer System.Windows.Threading.DispatcherTimer System.Web.UI.Timer 通常情况下,WinForm 请注意,这里说的是通常情况,后边介绍System.Windows.Threading.DispatcherTimer时会提到在非UI线程创建DispatcherTimer时也无法直接访问UI元素。 System.Windows.Threading.DispatcherTimer是WPF中的定时器,它是基于Dispatcher对象的(并不是基于UI线程的)。 DispatcherTimer的定时任务是像其他操作一样放在Dispatcher队列上,其执行操作时间依赖于队列中其他任务及其优先级,因此,DispatcherTimer不保证在时间间隔发生时准确执行, dt = new DispatcherTimer(); dt.Tick += Dt_Tick; dt.Interval = TimeSpan.FromSeconds(1

    65310编辑于 2023-11-29
  • 来自专栏DotNet NB && CloudNative

    .NET 中有多少种定时器

    分别为: System.Windows.Forms.Timer System.Windows.Threading.DispatcherTimer System.Web.UI.Timer 通常情况下,WinForm 请注意,这里说的是通常情况,后边介绍System.Windows.Threading.DispatcherTimer时会提到在非UI线程创建DispatcherTimer时也无法直接访问UI元素。 System.Windows.Threading.DispatcherTimer是WPF中的定时器,它是基于Dispatcher对象的(并不是基于UI线程的)。 DispatcherTimer的定时任务是像其他操作一样放在Dispatcher队列上,其执行操作时间依赖于队列中其他任务及其优先级,因此,DispatcherTimer不保证在时间间隔发生时准确执行, dt = new DispatcherTimer(); dt.Tick += Dt_Tick; dt.Interval = TimeSpan.FromSeconds(1

    59311编辑于 2023-12-13
  • 来自专栏JusterZhu

    一站式WPF--线程模型和Dispatcher

    DispatcherTimer   鉴于线程亲缘性,当需要创建Timer并访问UI对象时,多使用DispatcherTimerDispatcherTimer的一个简单用法如下: var dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0,0,1);dispatcherTimer.Start ();   在DispatcherTimer的内部,Timer的Tick事件处理也被包装成了DispatcherOperation,并调用BeginInvoke加入到Dispatcher中去。 当这个DO被执行后,如果DispatcherTimer的状态仍然为Enable,DispatcherTimer会继续调用BeginInvoke加入新的DO。

    81511编辑于 2023-09-18
  • 来自专栏JusterZhu

    一站式WPF--线程模型和Dispatcher

    DispatcherTimer   鉴于线程亲缘性,当需要创建Timer并访问UI对象时,多使用DispatcherTimerDispatcherTimer的一个简单用法如下: var dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0,0,1);dispatcherTimer.Start ();   在DispatcherTimer的内部,Timer的Tick事件处理也被包装成了DispatcherOperation,并调用BeginInvoke加入到Dispatcher中去。 当这个DO被执行后,如果DispatcherTimer的状态仍然为Enable,DispatcherTimer会继续调用BeginInvoke加入新的DO。

    81820编辑于 2023-09-18
  • 来自专栏林德熙的博客

    win10 UWP 蜘蛛网效果

    自动移动 可以使用 DispatcherTimer ,过 0.1 s就移动点和画线。 public MainPage() { this.InitializeComponent(); _time = new DispatcherTimer 500); _time.Tick += Time_Tick; _time.Start(); } private DispatcherTimer public MainPage() { this.InitializeComponent(); _time = new DispatcherTimer } } } private Random ran = new Random(); private DispatcherTimer

    45020编辑于 2022-08-04
  • 来自专栏一路走一路失去也一路拥有

    WPF中控件单击双击冲突的解决方案

    Button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { ++ChannelCkickCount; DispatcherTimer ClickTimer = new DispatcherTimer(); ClickTimer.Interval = new TimeSpan(0, 0, 0, 0, 200); ClickTimer.Tick

    2.7K40编辑于 2022-06-09
  • 来自专栏CSharp编程大全

    WPF 不遮挡任务栏最大化和全屏显示

    MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { DispatcherTimer ; public MainWindow() { InitializeComponent(); mTimer = new DispatcherTimer

    5K10发布于 2020-12-15
  • 来自专栏hbbliyong

    WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法

    方法二:使用定时器 public Window1() { InitializeComponent(); DispatcherTimer _mainTimer = new DispatcherTimer(); _mainTimer.Interval = TimeSpan.FromSeconds(1);

    2.2K70发布于 2018-03-05
  • 来自专栏hbbliyong

    WPF刷新界面之坎坷路

    public partial class Window2 : Window { DispatcherTimer _mainTimer; public Window2 () { InitializeComponent(); _mainTimer = new DispatcherTimer();

    2.5K70发布于 2018-03-05
  • 来自专栏Avalonia

    Avalonia 实现平滑拖动指定控件

    private Point lastMousePosition; ///

    /// 用于平滑更新坐标的计时器 /// private DispatcherTimer OnPointerMoved; PointerReleased += OnPointerReleased; // 初始化计时器 _timer = new DispatcherTimer

    1.3K20编辑于 2023-02-28
  • 来自专栏菩提树下的杨过

    silverlight2中的定时器,以及如何动态改变控件的坐标

     Page : UserControl     { public Page()         {             InitializeComponent();             DispatcherTimer  dt = new DispatcherTimer();             dt.Interval = new TimeSpan(0, 0, 0, 0, 100); // 50 Milliseconds

    90470发布于 2018-01-22
  • 来自专栏JusterZhu

    解读WPF中的Binding

    timer = (DispatcherTimer)GetValue(Feature.Timer, null); timer.Stop(); 如果在绑定表达式中用了Delay属性,则会触发BindingExpressionBase中的DispatcherTimer来达到数据延迟更新的效果。 this.IsUpdateOnPropertyChanged) return; DispatcherTimer dispatcherTimer = new DispatcherTimer() ; this.SetValue(BindingExpressionBase.Feature.Timer, (object) dispatcherTimer); //这里的Interval就是根据我们在设置 如果写Delay=1000;那么就是1秒后触发更新 dispatcherTimer.Interval = TimeSpan.FromMilliseconds((double) delay); dispatcherTimer.Tick

    2.3K10编辑于 2022-12-07
  • 来自专栏我和未来有约会

    Silverlight 3.0 中的 WriteableBitmap

    ScreenshotViewer.ExtentHeight); } 多次呈现 这里使用一个Timer来多次呈现位图(要使用Render方法需要调用Invalidate来呈现位图)         DispatcherTimer wbopt; public MainPage() { InitializeComponent(); timer = new DispatcherTimer

    88980发布于 2018-01-16
领券