问题标签 [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 投票
3 回答
16172 浏览

c# - Application.Current.Shutdown() 与 Application.Current.Dispatcher.BeginInvokeShutdown()

首先介绍一下背景:我有一个 WPF 应用程序,它是传统 Win32 应用程序的 GUI 前端。旧版应用程序作为 DLL 在单独的线程中运行。用户在 UI 中选择的命令在那个“遗留线程”上调用。

如果“遗留线程”完成,GUI 前端就不能再做任何有用的事情了,所以我需要关闭 WPF 应用程序。因此,在线程方法的最后,我调用Application.Current.Shutdown().

由于我不在主线程上,因此我需要调用此命令。但是,后来我注意到 Dispatcher 还必须BeginInvokeShutdown()关闭 Dispatcher。所以我的问题是:调用之间有什么区别

并打电话

0 投票
5 回答
23356 浏览

c# - WPF Dispatcher {“调用线程无法访问此对象,因为不同的线程拥有它。”}

首先我需要说我是 WPF 和 C# 的菜鸟。应用程序:创建 Mandelbrot 图像 (GUI) 我的调度程序在这种情况下工作得很好:

尝试使用以下代码执行此操作时,我收到消息(标题):

我将尝试解释我的程序是如何工作的。我创建了一个新线程(因为 GUI 不响应)来计算像素和颜色。在这个线程(方法)中,计算准备好后,我正在使用调度程序刷新 ViewBox 中的图像。

当我不将计算放在单独的线程中时,我可以刷新或构建我的图像。

0 投票
4 回答
826 浏览

c# - 创建 System.Windows.Controls.Image 会引发异常 - 我如何使用调度程序来实例化它?

我正在对在测试中执行以下操作的一段代码运行单元测试:

在 Icon 属性的 getter 中,我这样做:

这引发了这个异常: System.InvalidOperationException :调用线程必须是 STA,因为许多 UI 组件都需要这个。

我理解这意味着什么,并且我知道我需要使用 Dispatcher,但我对如何或为什么有点困惑......这是我的 ViewModel 的一个属性,运行时我没有得到任何这些异常应用程序。

其他信息:这只是在我升级到 .NET 4 时才开始失败。

0 投票
2 回答
3602 浏览

c# - 为什么 Dispatcher.Invoke 不触发 UI 更新?

我正在尝试重用 UserControl 并借用一些跟踪进度的逻辑。我会尝试简化事情。MyWindow.xaml 包含一个 MyUserControl。MyUserControl 有自己的进度指示器(正在格式化...,正在复制文件...等),我想在 MyWindow 表单的某个地方反映这个进度。但是,用户控件有一些我不太明白的逻辑。我已经阅读和阅读,但我仍然不了解调度程序。以下是更新进度的用户控件中的逻辑摘要。

我认为我会很聪明,并向 MyUserControl 添加一个事件,该事件将在 ActivateInProgress 属性集逻辑中调用。

我将 MyWindow 构造函数中的 ActivateInProgressHandler 设置为以下方法,该方法设置用于窗口自己的进度指示器的视图模型属性。

但是,窗口的进度指示器永远不会改变。所以,我确信 Dispatcher.Invoke 正在做一些我不理解的事情。如果我在 SetActivation 方法中放置一个消息框,线程会阻塞并且窗口的进度指示器会更新。我了解基本线程,但整个 Dispatcher 对我来说是新的。我错过了什么?

更新:它现在似乎正在工作。事实证明,进度更新得如此之快,以至于它从未显示在屏幕上。但是,我仍然想了解 Dispatcher.Invoke 完成的原因(这是我没有编写的现有代码)。为什么动作内容不符合 *.xaml.cs 代码的其余部分?

0 投票
2 回答
7151 浏览

wpf - Dispatcher 和 SynchronizationContext 类

有人可以告诉我何时使用 aDispatcher以及何时使用SynchronizationContext该类吗?

一段时间以来,我一直在使用Dispatcher从后台线程排队任务,然后我发现了SynchronizationContext.

0 投票
3 回答
4322 浏览

wpf - Dispatcher.Invoke 永远的块

我正在尝试在 UI 调度程序上调用一个对话框:

但是,调用Invoke永远阻塞,并且Show永远不会在 UI 线程上调用......

使用BeginInvoke不是一个选项:我需要立即得到结果,因为我正在处理来自远程对象的事件(使用 .NET 远程处理)

任何的想法 ?


更新

以下是对该问题的更完整描述:

我有一个使用 .NET Remoting 与 Windows 服务通信的客户端应用程序。在某些时候,客户端调用服务以执行操作(此调用由用户操作触发,在这种情况下单击按钮)。服务可能需要凭据来执行操作:在这种情况下,它会引发一个CredentialsNeeded由客户端处理的事件。然后客户端显示一个对话框以提示用户输入凭据,并在事件的参数中设置适当的属性。当事件处理程序返回时,服务使用凭据完成操作,并将控制权返回给客户端。

因此,当我收到事件时,UI 线程正在等待服务端的操作完成......我认为这Invoke是未处理调用的原因,但我该如何解决呢?我可以创建另一个UI 线程来显示对话框吗?在 WinForms 中,我知道我可以使用 启动另一个消息泵Application.Run,但我不知道如何在 WPF 中做同样的事情......

0 投票
3 回答
3900 浏览

ruby-on-rails - Rails 应用程序和 Mongrel 的奇怪问题

我最初在 serverfault.com 上发布了一个与此问题相关的问题:https ://serverfault.com/questions/152587/apache-mod-proxy-to-another-server

从那以后,我意识到这不是我的服务器设置的问题,而是我的 rails 应用程序的问题。我已经在服务器方面设置了这个应用程序,与我在同一台服务器上运行的另一个正常运行的 rails 应用程序完全相同。当我启动服务器时,我的 mongrel.log 如下所示:

当我加载一个页面时,它会在日志中弹出:

我无法弄清楚这个应用程序有什么不同可能导致这个问题。

0 投票
2 回答
377 浏览

zend-framework - Zend 中的链接(如 href)问题

在调用动作时,我遇到了 Zend Framework 的问题。

此操作在名为“UploadInterfaceController”的控制器中称为“上传视频”。因此,该视图称为“uploadvideo.phtml”。

现在所有这些都包含在一个名为“Upload”的模块中。

问题是,我无法调用uploadvideo.phtml 中的链接。我尝试了以下代码:

它为我生成了一个漂亮干净的 URL(webroot/public/upload/UploadInterface/videoupload)。

.

发生调度程序错误,我无法解释:

我不明白,ZF 在哪里获得“Upload_”前缀。我尝试重命名控制器(以及 .zfproject.xml 中的代表条目),但它保持不变。

0 投票
2 回答
2999 浏览

silverlight - 如何在处理时更新 Silverlight UI

我浏览了网上发布的几个示例,但我无法回答我的问题。

我的“p”变量在 for 循环中增加了 1。我希望 UI 显示计算进度(以显示“p”如何从 0 增加到 1000000)。我在单独的线程上进行计算,并调用调度程序来更新 UI 中的 ResultBox。例子:

}

由于某种原因,这不起作用。但是,当我将 Thread.Sleep(1) 放在 this.Dispatcher... 之前时,它会按预期工作。这是否意味着 UI 更新(调度程序)被调用太频繁,因此它冻结了?还有其他方法吗?

谢谢

0 投票
1 回答
681 浏览

wpf - WPF异步调用问题

我的代码有什么问题?它不是在删除文件时更新TextBoxProgressBar删除文件。