问题标签 [dispatcher]
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.
javascript - Javascript调度事件
我经常使用 Flash,我的类使用EventDispatcher
允许我定义类的自定义事件的类。我怎样才能在 JavaScript 中做到这一点。
我想做这样的事情:
用 JavaScript 怎么可能?
php - 如何在 Zend Framework 中进行 preDispatch 转发?
我想_forward()
在preDispatch
检查用户是否在每个控制器中登录后使用。
这个场景很简单:如果用户没有登录,它应该被转发到loginAction
同一个控制器或另一个控制器。
这将导致无限循环,因为调度过程重新开始,再次调用preDispatch
并且转发将重新开始一切。
我能想出的唯一解决方案是检查是否loginAction
已在请求中设置。
所以我的问题是,成熟的开发人员将如何处理这个问题?
更新
点击发送按钮后,神圣意识的幽灵出现了;)另一个想法是构建一个LoginController
来处理登录请求。还是有更好的方法?
c# - WPF:将不可冻结的项目从一个调度程序转移到另一个
我们从 XPS 文档中加载 FixedPage 对象,处理并显示它。以下代码从 Package 中加载 FixedPage:
但是,该 XamlReader.Load() 调用需要很长时间(尤其是对于复杂的 FixedPages)并且有时会阻塞 UI。我们可以在另一个线程中使用它自己的 Dispatcher 执行此操作,但由于 FixedPage 类不是可自由处理的,因此主 UI 线程不能使用它。
有没有解决的办法?现在我们被困在使用 RenderTargetBitmap 将 FixedPages 渲染为图像,因为 BitmapSource 是 Freezable。
.net - 如何将 UI Dispatcher 传递给 ViewModel
我应该能够访问属于我需要将其传递给 ViewModel 的视图的调度程序。但是View应该对ViewModel一无所知,那怎么传呢?引入一个接口还是不将其传递给实例,而是创建一个将由视图编写的全局调度程序单例?您如何在 MVVM 应用程序和框架中解决这个问题?
编辑:请注意,由于我的 ViewModels 可能是在后台线程中创建的,所以我不能只Dispatcher.Current
在 ViewModel 的构造函数中执行此操作。
.net - 确保事物在 WPF 中的 UI 线程上运行
我正在构建一个 WPF 应用程序。我正在与服务器端进行一些异步通信,并在客户端使用事件聚合和 Prism。这两件事都会导致生成不是 UI 线程的新线程。如果我尝试在这些回调和事件处理程序线程上执行“WPF 操作”,那么世界将分崩离析,现在它已经开始这样做了。
首先,我在尝试从服务器的回调中创建一些 WPF 对象时遇到了问题。有人告诉我线程需要在 STA 模式下运行。现在我正在尝试更新 Prism 事件处理程序中的一些 UI 数据,我被告知:
调用者无法访问该线程,因为另一个线程拥有它。
所以; 在 WPF 中做正确的事情的关键是什么?我已经阅读了这篇 MSDN 帖子中的 WPF Dispatcher 。我开始明白了,但我还不是巫师。
- 当我需要运行一些我不确定是否会在 UI 线程上调用的东西时,总是使用 Dispatcher.Invoke 的关键是什么?
- 如果它实际上是在 UI 线程上调用的,并且无论如何我都执行 Dispatcher.Invoke,这有关系吗?
- Dispatcher.Invoke = 同步。Dispathcher.BeginInvoke = 异步?
- Dispatcher.Invoke 会请求 UI 线程,然后停止等待吗?响应速度较慢的程序是不好的做法和风险吗?
- 无论如何,我如何获得调度员?Dispatcher.CurrentDispatcher 是否总是给我代表 UI 线程的调度程序?
- 是否会存在多个 Dispatcher,或者“Dispatcher”是否与应用程序的 UI 线程基本相同?
- BackgroundWorker 是怎么回事?我什么时候改用这个?我认为这总是异步的?
- 在 UI 线程上运行的所有内容(通过被调用)是否会在 STA 单元模式下运行?即,如果我有一些需要在 STA 模式下运行的东西 - Dispatcher.Invoke 就足够了吗?
有人想为我澄清事情吗?有没有相关推荐之类的?谢谢!
.net - 使用 WPF UI 线程应该始终确保 STA 单元模式,对吗?
在我的 WPF 应用程序中,我与服务器异步通信。因此回调将不会在 UI 线程中运行,并且因为我需要在那里做一些 WPF 的东西(创建 InkPresenter 对象),所以我需要它在 UI 线程上运行。好吧,实际上要求是它在具有 STA 单元模式的线程上运行。我尝试使用 STA 模式创建一个新线程,但结果是 UI 线程无法访问 InkPresenter,因为它“由不同的线程拥有”。
我想要在回调中做的是使用 Dispatcher 来调用我需要 STA 的函数。这听起来像是正确的方法吗?我现在这样做,但它仍然失败。在我的回调函数中,我触发了以下函数,该函数现在尝试确保寻址的函数在 UI 线程上运行。
正如您从示例中看到的那样,我使用 CheckAccess() 来确保仅在 UI 线程上尚未运行该函数时才调用该函数。当我的回调调用此函数时,CheckAccess() 始终为 true,但Dispatcher.CurrentDispatcher.Thread.ApartmentState
为 MTA。为什么?我尝试删除 CheckAccess() 并始终执行 Invoke,但 ApartmentState 仍然是 MTA,并且创建 InkPresenter 失败。
谁能解释一下我在这里做错了什么?我有错误的调度程序或什么?这是确保在 UI 线程上运行某些东西的正确方法吗?
silverlight - Silverlight 计时器问题
我正在开发一个带有自定义动画的 Silverlight 应用程序。我想每 1 毫秒更新一次变量 animationCounter,以便在一秒钟内该值为 1000。我尝试过 DispatcherTimer 和 System.Threading.Timer。这边走:
(...)
使用 System.Threading.Timer
他们都在一秒钟内将 AnimationCounter 设置为 100 左右。应该是1000。我不知道为什么。有什么我想念的吗。
谢谢
c# - 让 ViewModel 对象持有 Dispatcher 是否被认为是不好的做法?
我的 WPF 应用程序是使用 MVVM 模式构建的。ViewModel 将与服务器异步通信,当返回请求的数据时,会触发 ViewModel 中的回调,并对这些数据进行处理。这将在不是 UI 线程的线程上运行。有时这些回调涉及需要在 UI 线程上完成的工作,所以我需要 Dispatcher。这可能是这样的:
- 将数据添加到 ObservableCollection
- 触发 Prism 命令,将设置要在 GUI 中显示的内容
- 创建某种 WPF 对象。
我尽量避免后者,但我发现这里的前两点对于 ViewModel 来说是合理的事情。所以; 让 ViewModels 持有 Dispatcher 以便能够为 UI 线程调用命令可以吗?或者这被认为是不好的做法?为什么?
c# - 如何在 Nunit 中调用 WPF Dispatcher?
我想测试一个使用数据字段值呈现文本块的应用程序。渲染完成后,我想获得实际宽度和实际高度。一切正常。当我尝试测试应用程序时,问题首先出现。我无法从测试项目调用调度程序。
以下是代码。
我刚刚开始使用 NUnit。所以,请帮助我。
谢谢
c# - 在线程中获取正确的 WPF 调度程序
在对象的构造函数中,我需要创建一个 WPF mediaElement 对象:
但该类也可以从其他线程实例化,所以我需要使用
但是我怎样才能在该构造函数中获得正确的调度程序实例:s