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

android - Handler.post(Runnable r) 和 Activity.runOnUiThread(Runnable r) 的区别

有没有区别

0 投票
2 回答
719 浏览

c# - 多线程:运行 C dll 的 C# 程序 - 无响应的 C#

我编写了一个执行两个任务的 C dll:

1) 将某些消息中继到 C# 程序

2) 在不同的线程上执行密集任务

一切正常,但 C# UI 没有响应,即使 C 在不同的线程上运行密集任务。

我还向 C# 公开了启动密集任务的 C 函数,允许 C# 尝试在不同的线程上运行该函数。

无论如何,当密集的任务运行时,C# 会陷入困境并且 C# 程序变得无响应。

我忘了提到我已经用 C 编写了整个程序并且它可以正常工作,但我想编写一个 C# 库以在未来的 .NET 项目中使用它。

0 投票
3 回答
3486 浏览

java - 为什么不是 UI 线程的线程不能访问视图?

我知道没有线程可以访问当前视图,除非它是 UI 线程。我想知道为什么?为什么哪个线程改变视图很重要?是安全原因吗?这是我使用的解决方法:

每次我想更改布局时,这样做是一种痛苦。有不同的解决方法吗?我知道异步任务,但我从来没有找到使用它的好方法,它比我正在做的更好吗?所有相关的答案都是appriciated!

0 投票
2 回答
2235 浏览

java - 为什么Android中只有UI线程才能更新UI?

有人可以向我解释为什么只有 Android 中的 UI 线程可以更新 UI 吗?为什么其他线程不能更新 UI?

0 投票
2 回答
5379 浏览

android - 如何在 UI 线程上显示 ProgressDialog

鉴于uploadPhoto,我一直在努力弄清楚如何在UI线程上为这段代码获取ProgressDialog,并希望得到任何指导:

0 投票
2 回答
1324 浏览

android - Android:如何从线程显示自定义对话框

我与此堆叠,我正在尝试使用 TabLayout 创建应用程序。我有 3 个标签(3 个不同的活动)。我还得到了读取我的 gps 位置的服务——效果很好。我得到了发布到 Web 服务器用户位置的线程 - 可以。

现在我正在尝试创建线程来询问 Web 服务器是否有任何消息给用户。如果有 - 线程尝试显示自定义对话框(2 个文本视图和图库 - 如果我通过单击按钮从活动开始操作,它会起作用),并且问题开始我知道我无法更新与主线程不同的 UI 表单线程,但我不知道如何解决这个问题。我尝试使用 AsyncTask - 失败 - 我不想将 AsyncTask 分配给特定的 Activity 作为内部私有类。

我希望无论用户当前正在使用哪个选项卡,我都可以显示我的自定义对话框。

线程工作正常,但如何显示该对话框。

我读过关于 runOnUIThread 但不知道如何使用它。

任何想法,任何类似的例子?

0 投票
2 回答
2026 浏览

iphone - 后台任务完成后如何指示主 UI 线程?(执行SelectorInBackground)

当后台任务完成时,如何在 iPhone 应用程序 IOS 程序中获得主 UI 线程的指示?

背景

  • 我正在尝试按照How to add a UIActivityIndi​​cator to a splash screen in a iphone application? 中的概念设置加载指示器?
  • 打算在 AppDelete 中使用“performSelectorInBackground”加载模型数据
  • 因此,我需要在 RootViewController 中以某种方式告诉数据何时在后台完成加载,以便它可以(a)使用数据更新 tableview 并(b)删除任何活动指示器
  • 我假设在这里做事的方法如下:
    • 在 App Delegate didFinishLaunchingWithOptions 传递模型数据加载到后台
    • AppDelegate 加载 RootViewController 并立即设置一个活动指示器
    • 一旦数据在后台加载,它必须以某种方式向 RootViewController(?这个问题的原因)表明它已经完成
    • 第二个问题可能也是当后台任务确实表明其完成时,RootviewController 如何在尝试禁用活动指示器之前检查 UI 是否已设置(带有活动指示器等)
0 投票
6 回答
1980 浏览

c# - BackgroundWorker 返回错误的线程

在我的应用程序中,我使用以下代码创建了一个新的 UI 线程:

这给了我一个休闲问题:

在 MyWindow 类的构造函数中,执行了一个 BackgroundWorker。在 RunWorkerCompleted 中,应该使用 BackgroundWorker 正在计算的一些数据更新 Control。

我已经建立了一个小样本,它说明了这一点:

bw_RunWorkerCompleted()我得到一个InvalidOperationException(调用线程无法访问此对象,因为不同的线程拥有它。)。看起来,BackgroundWorker 没有返回到它开始的正确 UI 线程。

有人可以帮助我,我能做些什么来解决这个问题?我无法更改正在执行 BackgroundWorker 的代码,因为它位于我使用的框架中。但我可以在 RunWorkerCompleted-Event 中做其他事情。但我不知道如何解决这个问题。

0 投票
4 回答
161 浏览

.net - 如何分别渲染用户控件

我有一个 UserControl 使用 Itemscontrol 等绘制数据上下文。我有三个相同用户控件的对象,但具有不同的数据上下文,这些对象在程序启动时被初始化。问题是数据上下文太大了,所以它在每个对象上绘制了大约 2000 个 UI 元素。这需要很多时间,真正让我烦恼的是 WPF 在单个 UIThread 中运行,所以我的计算机使用了总 CPU 功率的 1/8 来绘制它。我怎样才能让它更快?

代码(DynamicShelViewModel 是一个用户控件)

这大约需要 2 分钟才能完成。

这是 DynamicShelfViewModel 的 XAML 代码

0 投票
3 回答
1175 浏览

android - 从外部 UI 线程更新 gridview

我正在尝试做一些非常简单的事情,但不知何故没有找到方向。这是我想要完成的。

在我的 GridView 活动中,我从 sdcard 位置加载最多 10 张照片。然后,使用菜单选项“加载更多”,我想从另一个 sdcard 位置加载多达 50 张照片并刷新 GridView 以显示所有照片(不想用新项目再次调用 GridView 活动)

从外部线程或菜单触发选项刷新 GridView(在主 UI 线程中定义)是我想要做的。任何建议将不胜感激。