问题标签 [ui-thread]

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 投票
5 回答
28153 浏览

android - 是否可以在 Service 类中使用 AsyncTask?

一切都在标题中。

在官方文档中Note that services, like other application objects, run in the main thread of their hosting process,AsyncTask 仅在它在 UIThread 中执行时才有效。

那么可以在 Service 类中使用 AsyncTask 吗?

我正在尝试这样做,但我总是遇到同样的错误

...

我做错了什么还是这不可能?

这是我的服务类的代码

0 投票
1 回答
1108 浏览

android - onTouch(), onClick() 是否在同一个线程中顺序运行?

onTouch(), onClick(),是否runOnUiThread()按顺序在同一个 UI 线程中运行?还是我必须担心它们之间的同步问题?

0 投票
1 回答
3867 浏览

android - Android:后台线程可能阻塞直到UI线程完成操作?

后台线程是否可以将消息排入主 UI 线程的处理程序并阻塞,直到该消息得到服务?

这样做的背景是我希望我的远程服务在其主 UI 线程上为每个已发布的操作提供服务,而不是从它接收 IPC 请求的线程池线程。

0 投票
1 回答
925 浏览

java - AsyncTask 不显示 onPreExecute

我有两个 AsyncTask 活动,它们的唯一职责是在 UI 线程上执行 AsyncTask。其中一个效果很好,显示进度条,并更新进度条消息。这适用于我的 SearchActivity,它实际上是一个带有 Google 搜索元数据的搜索活动,用于声明搜索活动。我创建了 AsyncTask 的克隆,只更改了 doInBackground 代码,还克隆了 SearchActivity 并将其命名为 browseActivity。

我启动 BrowseActivity 以获得在单击项目时扩展 listView 的类的结果。我打算让 AsyncTask 的 onPreExecute 代码在 ListView 活动和 ListView 将在 onActivityResult 启动的 ResultActivity 之间显示一个进度条,就像 SearchActivity 一样。正在调用 onPreExcute 代码,但从不显示 ProgressBar。(我以为我在 UI 线程上运行它正确?)

这是浏览活动:

这是开始browseActivity的CategoryActivity(扩展ListActivity)活动:

0 投票
0 回答
620 浏览

java - 我的 AsyncTask 都没有在 PostExecute 上执行

我拥有的唯一正常工作的 AsyncTask 是处理搜索的进度对话框的任务。即使 doInBackground() 正在完成,我的其他 AsyncTasks 都没有到达 onPostExecute() !我正在拔头发,因为它曾经在早期的提交中工作并进行比较,我看不出有什么区别!很多 AsyncTask 过去都是正确更新并调用 postExecute,现在它们更新非常缓慢,只有几次,并且从不执​​行 onPostExecute!

0 投票
2 回答
11276 浏览

c# - c#进度条不更新

我有一个 ProgressBarWindow,上面有一个进度条和一个取消按钮,用于报告文件 I/O 的进度。但是,ProgressBarWindow 的 UI 线程和我的主窗口都挂起,尽管所有工作都是在后台工作人员中完成的。渲染进度条,就像我的主窗口一样,但在后台工作人员执行其操作时不会更新。在主窗口的构造函数的最后调用以下代码:

EventCountLogLinesProgressChanged() 看起来像这样:

这是 ProgressBarWindow 的简化版本(剩下的只是几个 setter):

我尝试将 value setter 行包装在 dispatcher.invoke 委托中,但这给了我一个堆栈溢出(我不应该有一个 dispatcher.invoke 行,因为 backgroundworker 在 UI 线程中调用 ProgressChanged,对吧?)。我检查了 msdn 并用谷歌搜索,但我似乎找不到其他人有这个问题。

编辑道歉,我没有意识到我的简化代码阻止了 UI 线程,尽管使用了后台工作程序,但我得到了完全相同的行为,所以我错误地认为它们是等价的。我应该提到我正在使用后台工作人员:P

0 投票
3 回答
84235 浏览

android - 什么是Android UiThread(UI线程)

有人可以向我解释一下 UI 线程到底是什么吗?在 developer.android.com 上,它提到了 runOnUiThread 函数

public final void runOnUiThread(可运行操作)

自:API 级别 1 在 UI 线程上运行指定的操作。如果当前线程是 UI 线程,则立即执行该操作。如果当前线程不是 UI 线程,则将动作发布到 UI 线程的事件队列中。

UI线程是否意味着每次活动被某些ui活动(如来电或屏幕变暗等)推送到后台时都会运行?如果不是,那么 UI 线程究竟包括什么?

谢谢

0 投票
1 回答
554 浏览

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

在基于图片框的用户控件中引发异常,导致它显示典型的错误图像(红色 X)。由于 GUI 线程自己捕获并处理了异常,因此我无法轻松找出异常发生的位置并进行调试。

我目前正在将整个 OnPaint 代码包装在 try-catch 中,并且能够调试代码,但我发现它非常乏味,所以我想知道是否有办法从 GUI 线程异常中进入调试器。

0 投票
2 回答
458 浏览

multithreading - .NET 在自己的专用 UI​​ 线程上更新 WPF 控件

我有一个实时应用程序,它以 ListView 控件的形式不断更新 UI 日志(RichTextBox 控件)。控件使用通过事件接收的当前应用程序数据进行更新。我的应用程序运行得很慢,我发现这是由于 ListView 日志正在更新,这阻塞了 UI 线程。正如您可以想象的那样,该应用程序似乎对用户反应迟钝。

我知道可以在它自己的专用 UI​​ 线程上启动 WPF 窗口。我想知道是否可以在它自己的 UI 线程上托管 WPF 控件,以便主 UI 线程更新窗口的其余部分而不会被阻塞?

如果这是不可能的,请推荐替代方案来解决这个困境。

谢谢!

0 投票
3 回答
1318 浏览

android - Android MapActivity 线程问题

如何确保代码在 Android MapActivity 项目的 UI 线程上执行或不执行?

我正在开发一个基于 Android 地图的应用程序,但我遇到了一些稳定性问题,我的研究使我相信我需要确保在 UI 线程上执行屏幕更新。

我的应用程序有来自 GPS 侦听器(我想将其配置为单独的线程)和 UDP 侦听器(已经是单独的线程)的数据,并且它具有通常的一组 android 软件生命周期方法,但我一定是没有经验之类的,因为我不知道在哪里放置更新地图覆盖的代码

(a) 在 UI 线程上,(b) 以重复的方式。

我对轮询或事件驱动的过程(可能基于计时器,或传入数据的到达)没有偏好,因此任何一种类型的建议都将被欣然接受。

任何人有任何想法?

谢谢,R。