问题标签 [dispatchertimer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12506 浏览

c# - 处置或杀死 DispatcherTimer 对象和访问 DispatcherTimer 对象

问题1:您好,我想知道有没有一种方法可以处理或杀死DispatcherTimer的对象并创建一个同名的新对象?

问题 2:如果DispatcherTimer对象设置为 Public,我可以访问其他类中的对象吗?

0 投票
0 回答
334 浏览

wpf - 如果 ViewModel 具有相同的位置属性,WPF MVVM Canvas UIElement 具有奇怪的绑定

UIElement如果视图模型与集合中的另一个视图模型具有相同的属性,则该视图模型绑定到错误。

我有一个Canvas表示矩阵的控件,并且此画布绑定到一组矩形视图模型。每个矩形视图模型都与一个模型相关,该模型具有一个 Move() 方法,该方法设置模型的坐标,进而告诉矩形在矩阵 (x,y) 上移动的位置。

Canvas 视图模型有一个 DispatcherTimer,它在执行时循环通过画布的 ObservableCollection 中的每个矩形视图模型并调用 MoveModel() 方法,该方法又调用它引用的矩形模型上的 Move 方法。

这工作正常,画布上的所有矩形每秒都会移动到矩阵上的相邻图块。直到一个矩形移动到已经被另一个矩形占据的图块(具有相同 XPos、YPos 属性的视图模型),一旦发生这种情况,两个矩形都会绑定到同一个视图模型(看起来如此)并且一旦计时器执行两个矩形移动到相同的位置。因此,如果我从画布上的五个矩形开始,最终它们将全部组合在一起,并且只有 1 个矩形会在画布上四处移动。

调试问题会导致矩形正确移动,如果一个矩形最终出现在另一个矩形平铺中,那么下一次迭代该矩形将简单地移出平铺并正确进行。

任何帮助将不胜感激。

0 投票
0 回答
106 浏览

silverlight - 减少 WP7 Silverlight 中的计时器间隔

DispatcherTimer在 WP7 Silverlight 中使用在菜单上应用简单的翻译动画。

现在,如果我减少步长,翻译看起来很流畅,但很慢。如果我增加步长,翻译看起来很快,但不流畅。

解决方案是保持步长较小并减小间隔。但问题是仿真器在间隔等于或小于 10 毫秒的情况下执行相同数量的步骤。

如同:

那么有没有一种方法/替代方案/解决方案可以让某些事情在很短的时间内重复发生?

0 投票
1 回答
1452 浏览

c# - 如何暂停视频并从 WPF 和 C# 中的另一个位置播放它

我正在尝试在测试代码中的特定位置暂停视频,并尝试从完全不同的位置开始播放。它最终确实从另一个点开始,但是当它再次暂停时,它会回到它注册的第一个实例。我想知道我在这段代码中做错了什么。

CS文件中的代码是

XAML 代码是

0 投票
1 回答
235 浏览

.net - Global.asax 中的计时器

我想在 IIS 中启动应用程序时启动一个计时器。

你认为最好的地方是 Global.asax 的 Application_Start 吗?

非常感谢你。

0 投票
1 回答
438 浏览

c# - 为什么 DispatcherTimer 在随机时间后停止触发?

我已正确设置 DispatchTimer 以每秒触发一次-

问题:它会在一段时间内正确触发,然后停止触发。

附加信息: 现在您可能会问它有什么作用?如果 OneSecondChecker_Tick() 方法正在运行,则有一个类级别(静态)布尔变量设置为 true,如果不是,则设置为 false,因此我们没有此方法的两个实例在运行即使它设置为每秒触发一次。确保 OneSecondChecker_Tick() 运行无任何延迟是应用程序要求。我也不想在无限循环中运行。在 OneSecondChecker_Tick() 运行之前,会进行第二次检查以查看表值是否已更新。正是该表值“某种”通知 OneSecondChecker_Tick() 运行。该表值由另一个应用程序更新。

在方法本身中,我确实调用了使用 TPL 并行运行线程。我不知道这是否与它有关。

编辑 我仍然无法弄清楚这一点。可能是应用程序被冻结。任务管理器并没有这么说。是否可以判断应用程序是否没有从任务管理器以外的其他地方响应?

0 投票
2 回答
1352 浏览

c# - WPF中GUI的定时刷新

我有一个 WPF 画布,我想在其中Rectangles每 x 毫秒显示不同的颜色(存储在多维数组中)。

这可行,但我看不到它实时更新,因为它位于 MainWindow 构造函数中。

显然,矩形必须在 GUI 线程中创建,但如果我创建一个Timer来更改颜色,它是在不同的线程中。

我可以创建一个多维值数组并将这些值绑定到 Rectangle 数组中的颜色,以便我可以从另一个线程访问它们吗?如果我这样做,我如何告诉 GUI 线程重绘?

也许让用户首先单击一个按钮会更简单,这样就不会在构造函数中发生这种情况?

EDIT:

DispatcherTimer效果很好。为什么 MS 有一个单独的课程,这超出了我的范围。

在此处输入图像描述

是我使用它的来源。

0 投票
1 回答
14491 浏览

c# - 如何使 WPF 中的 DispatcherTimer 事件更流畅?

在我的 WPF 应用程序中,用户按下按钮启动 3D 模型平滑旋转,然后松开按钮停止旋转。

为此,我创建了一个 DispatcherTimer:

当按钮被按下时,我打电话timer.Start(),当按钮被松开时,我打电话timer.Stop()

timer_Tick函数改变模型的旋转:

我注意到模型在大部分情况下都能平稳旋转,但经常会冻结和卡顿,暂停不同的持续时间,有时长达 1/4 秒。

有没有办法让这更顺畅?我知道通过使用 DispatcherTimer(而不是 System.Timers.Timer),回调发生在 UI 线程上。但我必须处于 UI 威胁中才能运行该线路

我已经阅读了有关在其他线程上获取计时器回调的各种方法。但似乎最终我必须与 UI 线程同步才能调用该行。如果我使用 Invoke() 将 System.Timers.Timer 回调线程编组到 UI 线程,这会带来整体更流畅的动画吗?似乎不应该,因为它必须与 UI 线程同步,就像 DispatcherTimer 可能所做的那样。就此而言,对于 UI 线程而言,任何model2.Transform定期设置的方案似乎都在同一条船上,不是吗?

(作为一个可能是次要的问题,我首先试图了解导致暂停的原因。据我所知,UI线程正在做的其他事情没有什么重要的。所以我不明白在这些过程中发生了什么暂停。垃圾收集?看起来应该没有太多垃圾要收集,而且暂停似乎不会那么极端。)

0 投票
1 回答
573 浏览

c# - 不止一个,独立的dispatchertimer?

我想创建几个计时器,倒计时 x 时间,独立工作,更新 textBlock 中的时间,并在完成后做一些事情。

所以我写道:

时间例如是15秒。当我点击but1时,时间正在倒计时,当t1为10秒时,我点击but2,t2也是10秒,倒计时时间相同。

为什么会这样?如何避免这种情况?

0 投票
1 回答
1040 浏览

c# - 调度程序计时器 - Windows Phone

我正在我的 Windows 手机上构建一个小应用程序,但调度程序计时器出现问题。

每次加载页面时,调度程序都会在另一个时间运行。

基本上我有一个倒计时,当用户返回主页时(倒计时),调度程序计时器再次运行,这意味着倒计时的速度是两倍。