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

winapi - IsGUIThread——它有什么作用?

我一直无法弄清楚IsGUIThread真正的作用......我什至查看了 ReactOS 源代码,但我无法弄清楚。

任何想法为什么你可以称之为?

0 投票
2 回答
1193 浏览

wpf - Silverlight UI 线程冻结

我有一个网格控件试图显示大量数据,因此在 UI 线程上呈现需要很长时间。

我添加了一个加载栏,它根据屏幕是否忙碌(正在渲染)进行动画和显示。

但是,当网格尝试渲染时,加载栏只是冻结。我假设这是因为只有一个 UI 线程并且该线程很忙。

有谁知道我可以保持加载栏动画的方法?

非常感谢,

马特

0 投票
3 回答
13321 浏览

android - Android,创建一个简单的线程来更新我的秒计数器

基本上,我正在尝试运行秒计数器和级别计数器。每 10 秒我想 ++level。
但这还没有实现,到目前为止,我只是想显示几秒钟,但我遇到了运行时异常和崩溃。
谷歌搜索我看到这是因为我试图从我的线程更新 UI,这是不允许的。所以我想我将需要 asyncTask,但我不知道如何使用我的简单小程序来做到这一点。请帮助或给我一些替代方案...

0 投票
2 回答
1322 浏览

android - 在 UIThread 中未显示 ProgressDialog

我正在使用 google api lib 创建地图。因为 mapwidget 需要很长时间才能加载,所以我尝试添加加载通知,但未显示。我可以在常规线程中显示progressDialog。这个对话框怎么不显示?

0 投票
1 回答
12739 浏览

android - Activity 类型中的方法 runOnUiThread(Runnable) 不适用于参数(void)

我正在尝试在 onUtteranceCompleted() 中从非 UI 线程创建一个对话框:

Prompt() 是MyDialog 类的一个简单静态方法:

问题是我正在尝试做的事情有两个错误:

  1. Activity 类型中的方法 runOnUiThread(Runnable) 不适用于参数(void)
  2. MyDialog 类型中的方法 Prompt(Activity) 不适用于参数 (new Runnable(){})

我想要的只是通过将对话框创建推迟到 UI 线程来“做对”,但似乎我缺少一些基本的东西。

我错过了什么,我该如何完成我想要完成的看似简单的任务?

0 投票
1 回答
4072 浏览

android - 为什么Android服务需要在UI线程上运行?

我有一个可能很简单的问题。我有一个安卓服务;我在其中创建了一个通用服务类,它请求锁定并在单独的线程中执行实际(扩展)服务代码。下面的例子:

在上面的例子中;即使 Looper.prepare() 和 Looper.loop() 没有在被调用的线程中调用,一切正常。

但是,如果我尝试通过 GPS 或网络获取位置;然后我有一个问题,代码没有运行说“无法在没有调用 Looper.prepare() 的线程内创建处理程序”。

我知道我们需要创建循环器和处理程序来与 UI 线程通信;对于影响 UI 的事件。但是获取位置会影响 UI 吗?是不是因为位置提供者也会尝试在我的手机顶部栏上绘制一个 GPS 图标,并且因为它没有在 UI 线程中运行;它不能那样做吗?

这里有什么问题,我可以通过调用 looper.prepare() 和 Looper.loop() 来解决这个问题;但是我需要了解以下内容?

  • 我知道服务在主线程上运行,与 UI 线程相同;这是否有效地意味着,服务有能力对 UI 进行更改,我们不这样做是因为它不是良好的用户体验,这就是为什么通过通知传达所有内容?(甚至通知也需要在 UI 线程上运行?)
  • 为什么位置提供程序需要在 UI 线程上运行?
  • 我没有在这里声明任何处理程序,我只是在调用 looper.prepare(); 那么消息队列如何在后台工作以及在下面的android代码中会发生什么?

对这些问题的任何指示和答案都将非常有帮助。在此先感谢您的帮助。

干杯

0 投票
4 回答
977 浏览

android - Android 按钮响应问题

大家好,因为我使用的是一个按钮,单击该按钮它连接到一个 Web 服务。但问题是,当我按下按钮时,它并没有向我显示它已被点击并连接到互联网和网络服务。连接后它向我显示它已被点击的响应。总之按钮的反应很慢。如果该按钮在其侦听器中有一些 Internet 连接。我知道它与 UI 线程有关。但请朋友们指导我完成这个。

非常感谢,

0 投票
1 回答
446 浏览

android - 结束我的游戏时出现问题(UI 线程不允许我打开新的活动)

我在绑定我的程序时遇到了麻烦(结束它)。我在 Activity 中有一个 SurfaceView,当你失去三条生命时,游戏应该在那个 SurfaceView 中结束。我尝试打开一个新的 Activity,但我得到一个 keyDispatchingTimedOut 错误。我知道这与我的 UIThread 有关。我被告知在我的活动中创建一个处理程序,然后可以访问我的表面视图。然后我可以向我的处理程序发送一条消息,它可以在主 UI 线程中更新 UI(或启动新活动)。但是...我不知道该怎么做!我在哪个活动中创建处理程序?我想从哪个启动新活动?我真的迷路了,这是使我的程序具有凝聚力所需的最后一部分。如果不出意外,我怎么能关闭活动?我的 UI 线程引起了很多问题:(

表面视图

}

线

0 投票
2 回答
434 浏览

c# - 需要在 C# 中优先考虑异步套接字读取

我的应用程序使用异步 HttpWebRequest 请求预取大量视频帧。因此,如果有 100 帧,预取器将异步请求所有 100 帧,一次全部,并在收到返回时进行处理。即,它一次进行 100 次异步调用。这可能会使网卡饱和,但没关系。我想最大化网络带宽。

然而,当这种预取发生时,用户可能想要查看其中一个帧。因此,假设他们想要查看第 56 帧。问题是,第 1 到 100 帧已经被请求,并且正在处理中,因此对第 56 帧的请求可能需要很长时间才能得到响应。

如果有某种方法可以在异步请求发出后重新确定它们的优先级,那将是一件好事。并将用户请求推送到队列的最前面。

如果我不能这样做,我想我将不得不分批请求帧,以便我可以在批次之间插入我的用户请求,并避免超时。

任何关于如何正确设计的想法都将不胜感激。

0 投票
3 回答
2035 浏览

android - 处理来自其他线程的 UI

我有一个扩展Runnable. 这个类在不同的线程中执行一些繁重的操作(基本上是从网络下载图像)。我想ImageView从此类更新 UI(将下载的图像显示为 )。我尝试过使用处理程序但没有成功。这是我的代码:

在主要活动中

它是更新 UI 的正确方法吗?