问题标签 [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.

0 投票
2 回答
4626 浏览

wpf - 使用 dispatcher.Invoke 是否使我的线程安全?

在我的 WPF 应用程序中,我有一个长时间运行的上传运行,它会在运行时引发进度事件,从而更新进度条。用户也有机会取消上传,否则可能会出错。这些都是异步事件,因此需要使用 Dispatcher.Invoke 执行它们才能更新 UI。

所以代码看起来像这样,ish:

假设在已处置视图上设置 view.Progress 会引发错误,那么这段代码线程安全吗?即如果用户在进度更新时单击取消,他/她将不得不等到进度更新,如果在执行 OnCancelButtonClicked 期间更新了进度,则 Dispatcher.Invoke 调用将导致 view.Progress 更新为在 _cancelled 设置后排队,所以我不会在那里遇到问题。

或者我是否需要一把锁才能安全,例如:

0 投票
1 回答
180 浏览

.net - 使用哪个调度程序?窗口的还是控件的?

到目前为止,当我想从非 UI 线程更新 UI 控件时,我使用的语法如下:

现在我正在阅读更多关于它的内容,我一直在寻找以下语法:

后者更好吗?为什么我会选择一种方法而不是另一种?

0 投票
2 回答
582 浏览

zend-framework - 调度程序异常后如何重定向?

在我的引导文件中的 zend 框架上,我有以下代码:

相反,我想重定向到自定义控制器的丑陋消息......如果我不能使用 $frontController 重定向......我该怎么做?

谢谢你的帮助..

0 投票
1 回答
174 浏览

c# - 创建类似于 Dispatcher for SQL DataContext 的东西

我当前的项目是一个带有 SQL Server 后端的 WPF 应用程序。

在 WPF 中,UI 只能由 UI 线程修改。如果需要在另一个线程上完成 UI 修改,则可以调用调度程序对象并给予操作。实际上,这是将我的委托映射到 WM_ 消息。

由于到 SQL Server 的 linq 数据上下文也是单线程的,我如何从 WPF 复制这个“调度程序”的想法并创建一个类似的对象,我可以用它来编组对我的公共数据上下文的请求,以便始终来自“公共 SQL 线程”。

我猜我需要在启动时创建一个线程来初始化数据上下文,然后休眠直到被 SqlThread.Invoke() 方法唤醒。

有谁知道类似这个想法的任何东西或任何可以帮助我做到这一点的材料?

0 投票
1 回答
659 浏览

java - Servlet“newspring”不可用

尝试设置一个新的 spring 项目,当我导航到一个我希望路由到控制器的页面时,我遇到了这个问题(HTTP 状态 404 - Servlet newspring 不可用)。

web.xml

所以我查看了tomcat日志,我看到了这个异常:

严重:加载 WebappClassLoader 委托时出错:错误
存储库:/WEB-INF/classes/ ----------> 父类加载器:org.apache.catalina.loader.StandardClassLoader@a1807c org.springframework.web.servlet。 DispatcherServlet java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader. java:1233) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) 在 org.apache.catalina.core .StandardContext.loadOnStartup(StandardContext.java:4149)

但据说缺少的类实际上存在于 WEB-INF/libs 中的 spring-webmvc.jar 中(在 tomcatfolder/webapp/newSpring/WEB-INF/libs 中)。

是看不到这里吗?

0 投票
2 回答
4002 浏览

wpf - 如何检测 Dispatcher.DisableProcessing 是否处于活动状态?

Dispatcher如果在挂起(Dispatcher.DisableProcessing()调用)的情况下尝试显示消息框,则会引发异常。

InvalidOperationException:“调度程序处理已暂停”(请参见此处)。

有谁知道我怎样才能检测到在哪里Dispatcher被暂停(所以我知道什么时候打电话BeginInvoke())?

编辑1:

作为对 Application.DispatcherUnhandledException 事件的反应,我试图显示一个 MessageBox。但是,如果在 DataBinding(即ItemsControl.ItemsSource)期间抛出了这个未处理的异常,则该异常被Dispatcher挂起。试图显示 a MessageBoxthen 失败。总是使用Dispatcher.BeginInvoke()可以解决问题,但除非真的有必要,否则我不想这样做。

编辑2:

使用反射来完成这个工作是这样的:

0 投票
1 回答
1109 浏览

wpf - Dispatcher CheckAccess 的目的是什么?

在完成事件的异步网络服务上,有如下代码:

有人知道如果我删除此代码会发生什么吗?或者,能回答我的问题吗?

0 投票
4 回答
230542 浏览

c# - 使用 Dispatcher.Invoke 从非主线程更改 WPF 控件

我最近开始在 WPF 中编程并遇到以下问题。我不明白如何使用该Dispatcher.Invoke()方法。我有线程方面的经验,并且我制作了一些简单的 Windows 窗体程序,我只是在其中使用了

是的,我知道这很蹩脚,但这些都是简单的监控应用程序。

事实是现在我正在制作一个在后台检索数据的 WPF 应用程序,我启动了一个新线程来调用检索数据(来自网络服务器),现在我想在我的 WPF 表单上显示它。问题是,我无法从此线程设置任何控制。甚至没有标签或任何东西。如何解决?

回答评论:
@Jalfp:
所以当我获取数据时,我在“新胎面”中使用了这个 Dispatcher 方法?或者我应该让后台工作人员检索数据,将其放入一个字段并启动一个新线程,等待该字段被填充并调用调度程序将检索到的数据显示到控件中?

0 投票
1 回答
608 浏览

c# - 停止当前线程,直到从另一个窗口 wpf C# 接收到输入

我想停止其他Threads,直到用户在此窗口中提供输入...给出我拥有的代码:

假设以下代码Ping对网络节点进行扫描,但首先它会打开一个窗口以获取范围。但是,如何停止扫描,直到在此窗口中收到输入...

我可以通过获取线程 ID 来做到这一点吗?

0 投票
1 回答
641 浏览

silverlight - 如何在 Silverlight 测试中访问 Dispatcher?

我正在使用 SL 单元测试框架进行测试(http://code.msdn.microsoft.com/silverlightut)。我的代码在很大程度上依赖于客户端-服务器通信,并且我在多个位置访问 GUI 调度程序以确保仅在单个线程(即 GUI 线程)上访问重要数据。

这个调度器在单元测试中似乎不可用 - 我尝试使用 Deployment.Current.Dispatcher 甚至创建了一个空白控件的实例来尝试使用它自己的调度器,但两者都不起作用。Dispatcher.BeginInvoke() 内部的代码永远不会执行,即使我之后包含一个 Thread.Sleep 也是如此。