ui-thread相关内容

OperationQueue.main与DispatchQueue.main

当您需要在联网任务或操作的完成块中的主线程上执行某些操作时,哪种方法最合适?为什么?: OperationQueue.main.addOperation DispatchQueue.main.async 解决方案 有关这两种队列之间的区别的详细信息,请参阅Lion的答案. 这两种方法都行得通.但是,当需要更高级的计划(包括依赖项,取消等)时,通常需要NSOperation.所 ..

使用TPL时避免窗口(WPF)冻结

我正在构建一个WPF,它具有一个在SQL Server中执行SQL查询的按钮(查询可能需要很长时间才能运行). 我想使用TPL来做到这一点. 此代码: var result = Task.Factory.StartNew(()=> {command.ExecuteNonQuery();}); 给出以下异常: ExecuteNonQuery需要一个开放且可用的连接.连接的当前状态为关闭. ..
发布时间:2020-11-10 22:47:12 其他开发

在长时间运行之前强制重绘

使用按钮时,请执行以下操作: 私有功能Button_OnClick 按钮.Enabled = False [长期操作] 最终功能 然后,该按钮将不会显示为灰色,因为较长的操作会阻止UI线程重新绘制控件。我知道正确的设计是启动后台线程/调度程序,但有时对于一个简单的操作来说太麻烦了。 所以我如何强制按钮重新绘制禁用状态?我在Button上尝试了.U ..
发布时间:2020-10-22 05:56:09 其他开发

我们如何在Android中使用runOnUiThread?

我是Android的新手,正在尝试使用UI-Thread,所以我编写了一个简单的测试活动.但是我认为我误会了一些东西,因为单击按钮后,该应用程序不再响应 public class TestActivity extends Activity { Button btn; int i = 0; @Override public void onCreate(Bun ..
发布时间:2020-08-24 05:36:04 移动开发

在没有控制对象的情况下在UI线程上运行代码

我目前正在尝试编写一个组件,该组件的某些部分应在UI线程上运行(解释会很长). 因此,最简单的方法是将控件传递给它,并在其上使用InvokeRequired/Invoke. 但是我认为将控件引用传递给“数据/背景"组件不是一个好的设计,因此我正在寻找一种无需在控件上可用就可以在UI线程上运行代码的方法. . 类似于Application.Dispatcher.Invoke in WPF ... ..
发布时间:2020-07-23 18:40:30 其他开发

边缘:进程内本机扩展和Windows.System.Launcher.LaunchFileAsync

我已经使用我面临的问题是,该应用程序没有头,因此没有CoreWindow.GetForCurrentThread().Dispatcher,也无法从Window.Current检索调度程序. 即使在发布模式下或未连接调试器的情况下,如何强制在UI-Thread上执行LaunchFileAsync? 我知道我可以简单地执行以下操作: await Dispatcher.RunAs ..
发布时间:2020-06-30 21:40:09 C#/.NET

Android更新ui线程元素-最佳做法?

我有一个可以显示一些测量值的应用程序,例如温度,速度等. 我想或多或少地坚持MVC模式,所以我得到了一些东西,当它们出现时(从蓝牙组件)接收它们的值,并将它们排序到特殊的值处理程序中.那些应该计算东西,等等(从地理坐标等得到的速度),然后将这些值传递给View组件,该组件扩展了活动并应该打印这些值.一些值处理程序将在它们自己的线程中,或者整个值处理程序将是一个单独的线程. 所以首先我尝 ..
发布时间:2020-06-17 19:25:37 移动开发

如何在UIThread上测试Prism事件聚合器订阅?

我有一个类,该类通过PRISM事件聚合器订阅事件. 由于要模仿此处那样的事件聚合器有些困难,因此 a>,我只是实例化一个真实的实例,然后将其传递给被测系统. 然后在测试中,我通过该聚合器发布事件,然后检查被测系统对该事件的反应.由于该事件将在生产期间由FileSystemWatcher引发,因此我想通过订阅UIThread来利用自动分派,因此一旦引发该事件,我就可以更新我的UI. ..
发布时间:2020-06-14 18:36:19 其他开发

如何在GUI线程中捕获异常?

基于图片框的用户控件中引发了异常,导致该异常显示典型的错误图像(红色X).由于GUI线程本身捕获并处理了异常,因此我无法轻松找出异常发生的位置并进行调试. 我目前正在将整个OnPaint代码包装在try-catch中,并且能够调试该代码,但是我发现它非常乏味,因此我想知道是否有办法从GUI线程异常中闯入调试器. 解决方案 默认情况下,它已经可以通过这种方式工作. UI线程异常处理方法 ..
发布时间:2020-05-27 20:33:04 C#/.NET

如何使某些任务更改我的WPF控件

我想创建一个执行以下操作的WPF应用程序: 该应用程序将有8个任务一起运行. 每个任务都可以将一些字符串添加到主窗口中显示的文本框中. 如何使所有任务同时运行并在主UI线程上运行? (13/04/13:) 请参见下面的代码: private void RunTasks(int ThreadsNumber) { int Rat ..
发布时间:2020-05-14 01:53:29 其他开发

使用Invoke处理来自其他线程的调用.这是一个好模式吗?

在阅读了如何使用Invoke以便能够从其他线程更新GUI元素之后,我做了一些工作,最终得到了以下方法来处理它.我可以肯定地说,我使解决方案过于复杂,但是我确实认为它可以按预期工作. 我看到的这种方法的优点是,一旦GUI线程准备好了,并且命令的顺序得到维护,它允许短时间存储多个命令以供使用.不利的是,对我来说,存储这些临时参数看起来效率很低(我可以创建一个通用类来存储所有这些参数,以将它们隐藏 ..
发布时间:2020-05-14 01:18:31 C#/.NET

Runnables会阻止UI线程吗?

我试图了解UI线程的事件队列如何工作.我正在尝试运行一个可以分为许多部分的代码,但是不幸的是,它必须在UI线程上运行.因此,为了不阻塞UI线程并接收ANR,我想知道是否可以在许多Runnable对象中破坏该代码并使用另一个线程中的runOnUiThread来运行它们. 我的问题是,这会阻塞UI线程吗?例如,如果我有一段代码肯定在5秒钟内运行并且将这段代码分解为1000个Runnable对象, ..
发布时间:2020-05-14 00:00:54 Java开发

WinForms App中的F#跨线程UI异常

我在用F#开发一个简单的应用程序时遇到了问题,该应用程序仅读取请求的HTML页面的长度. 在开发UI应用程序时,似乎对于VB.NET/C#语言来说,这种错误也将类似. 但是我对F#还是很陌生,并且真的不敢想像要在F#中完全解决此类问题. F#中的源代码: http://pastebin.com/e6WM0Sjw open System open System.Net ..
发布时间:2020-05-13 22:00:11 其他开发

Visual Basic.NET:如何创建线程来更新UI

通常的VB处理繁重的任务的方法是将其放在后台工作线程中,而主线程则继续处理UI. 无论出于何种原因,我都需要以另一种方式进行操作:主线程执行繁重的工作,而后台线程则更新UI. 这是我到目前为止所拥有的.唯一的问题是,虽然UI窗口(Form1)确实被重绘,但您无法与之交互,甚至无法移动或调整它的大小(鼠标光标变成沙漏状且不会单击). Public Class ProgressDis ..

是否可以在不同的线程中初始化WPF UserControls?

我们正在开发一个WPF应用程序,它将同时打开许多报告(就像典型的MDI应用程序,例如Excel或Visual Studio).尽管可以在多个工作线程中运行这些报表的数据上下文,但我们仍然发现,如果打开的报表的数量确实很大,那么即使是这些报表的呈现(基本上是在MDI环境中或仅在MDI环境中托管的UserControl)主视图中的网格区域)仍会使应用程序的响应速度降低. 因此,我的想法是在主UI ..
发布时间:2020-05-13 20:45:30 其他开发

刷新列表视图时,UI会阻塞(如何解决?)

我有一个按钮.点击后,我正在刷新列表. 我正在经历的事情: state_pressed 颜色保持很长一段时间(这意味着UI线程被阻止) (注意:按钮的背景已定义,例如在state_pressed ="true"上颜色会发生变化) 问题: 如何在不阻止UI的情况下单击按钮刷新列表? 我的代码: mButton.setOnClickListener(new Vie ..
发布时间:2020-05-02 10:15:24 移动开发

在新线程中调用方法的简便方法

我正在编写小应用程序,现在我发现了一个问题。 我需要调用一个(稍后可能是两个)方法(这个方法加载一些东西并返回结果)而不会滞后于app的窗口。 我找到了类喜欢执行者或可调用,但我不明白如何使用这些。 您能否发布任何解决方案,这对我有帮助吗? 感谢所有建议。 编辑方法必须返回结果。此结果取决于参数。 这样的事情: public static HtmlPage ge ..
发布时间:2019-01-17 19:56:37 Java开发

从其他线程处理主ui线程上的动画请求太多 - android

我正在创建动画太多的活动,并且在开始此活动时,logcat会在此活动的生命周期内一次又一次地向我显示此消息: I / Choreographer:跳过36帧!应用程序可能在其主线程上做了太多工作。 所以我在另一个线程中做了很多东西,但仍然在主UI线程上有大量访问权限。而且,动画在一些高分辨率设备上变得非常慢 处理这个问题的可能解决方案是什么? 更新: ..
发布时间:2019-01-10 13:45:50 Java开发