问题标签 [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.
javascript - JavaScript 线程和 Silverlight UI 线程之间有什么关系?
JavaScript 是单线程的 - Silverlight 不是,但 JavaScript 和 Silverlight 之间的交互必须在 Silverlight UI 线程上执行。
然而,Silverlight UI 线程和 JavaScript 线程之间究竟是什么关系呢?从任何定义来看,它们是同一个线程,还是单独的线程,它们的交互纯粹通过各自的事件循环执行,并在等待另一个线程时阻塞一个线程(例如,从 Silverlight 评估/调用 JavaScript 时)?换句话说,JavaScript 是否可以与 UI 线程上的 Silverlight 操作同时执行(并且同一页面中托管的多个 Silverlight 实例是否可以同时运行它们的 UI 线程)?
silverlight - 如何防止 Silverlight 中的 UI 线程锁定
在视图中,我有一个按钮,可以调用视图模型中的方法
搜索.xaml
我在视图中还有一个 IsBusy 指标
(我在这个项目中使用 SimpleMVVM 工具包)
在视图模型中,我声明了我的方法以及 IsBusyIndicator 等的属性。
搜索视图模型.xaml
然后在模型中我对 WCF 服务进行异步调用
搜索控件通过应用了 dataTempalte 选择器类的列表框控件加载结果。
我看到的问题是因为这个调用是从 UI 调用的,所以 UI 线程被锁定,直到为集合选择数据模板并返回结果。至此,IsBusy 指标甚至没有触发。
我的问题是有人能指出我应该如何进行这些调用以使 UI 线程不被锁定吗?我是否应该寻找某种后台线程等来进行调用,以便 UI 线程可以调用 IsBusy 指示器等。
如果您需要更多详细信息或其他样品,请告诉我。
提前致谢
objective-c - 如何在 UI 线程上闪烁按钮?
我的 UI 上有一个按钮,一旦按下按钮,我想每 800 毫秒闪烁一次(打开然后再次关闭)。我用以下代码做到这一点:
...效果非常好,除了:UI 上还有一个 UIScrollView,当用户将手指放在上面并滚动时,按钮会冻结。虽然我完全理解为什么会这样,但我不知道该怎么办。
消息调度消息在performSelector:withObject:afterDelay
当前线程上发送,即主线程,即。UI 踩踏,因此在所有其他 UI 活动结束之前不会处理消息。正确的?但我需要在 UI 线程上执行此操作,因为我无法选择/取消选择任何其他线程上的按钮,对吗?那么这里的解决方案是什么?
android - 从视图在 UI 线程上运行
我有一个自定义视图,它本身包含多个视图。我已经做到了,当单击此容器视图中的一个视图时,它将运行一个“计时器”线程,该线程需要每秒更新一个 TextView,也在容器视图内。当我想每秒更新 TextView 时,就会出现我的问题。显然,这并不像我想象的那么容易。我像这样在我的容器视图中实现了 Runnable ,并在单击按钮以启动计时器时执行了线程:
我得到了典型的 cannot-touch-views-outside-hierarchy 异常,这基本上意味着它没有在 UI 线程上运行。我不想在post(Runnable)
这里使用,因为我不想一直等到线程结束才更新一秒钟。将它所在的整个 Activity 传递给自己运行对我来说也是不切实际的runOnUiThread(Runnable)
。那么有人可以告诉我如何去做这件事吗?如果有人需要澄清,请告诉我!
android - 我正在尝试制作一个简单的线程,在一段时间后更改文本视图
问题是,当我第二次单击按钮时,我的应用程序崩溃了,我不明白为什么。当我第二次点击按钮时,假设再次相同。
任何帮助表示赞赏。
android - 更改 ImageView 的资源时强制关闭
当我单击一个项目时,我在更改图像视图的资源时遇到了一些问题。我知道任何图形更新都应该在 UI 线程中完成,我尝试了两种方法但没有成功:
...我的代码没有处理程序:
...我的代码带有处理程序和可运行:
}
我已将onClick
布局 XML 中的设置为“已单击”,并为所有可单击的图像提供了唯一的 ID。当我将 Log.d() 几乎放在代码中的任何地方时,我注意到它在iv.setImageResource(R.drawable.avatar_0);
命令处停止。
有人可以帮我吗?我错过了什么?谢谢
这是一些额外的 LOGCAT 信息:
橙色/红色的第一行是这三行:
silverlight - silverlight 上的 odata 仅在 UI 线程上运行
我们正在使用 Silverlight 上的 OData,使用 DataServiceCollection 获取数据。
所有获取数据的调用 (LoadAsync() LoadNextPartialSetAsync()) 都是在工作线程上完成的。但是,“LoadCompleted”回调以及反序列化和对象物化是在 UI 线程中完成的。
我们对 DataServiceCollection 所在的 System.Data.Services.Client.DLL 进行了反编译,发现确实所有处理 OData 响应的代码都被分派到了 UI 线程。
有没有办法让反序列化在工作线程上被调用?
谢谢亚龙
wpf - UI 刷新在绘画时冻结应用程序
这是一个推测性的问题,所以没有提供代码。
我有一个应用程序,它采用一个大型 XML 文件并从中构建一个视图以供用户编辑。XML 的加载在后台工作程序中执行,然后通过树视图以非常普通的 MVVM 方式绑定到视图。
这一切都很好,并且在工作人员加载 XML 时会显示一个漂亮的等待光标。
但是,当 XML 文件变得非常大(20M)时,UI 将在绘制新视图期间挂起。这是意料之中的,但这确实意味着应用程序仍然存在的所有视觉提示,以及冻结。目前,一旦在油漆前在工人中完成装载,光标就会改变。是否有用于控件的“paintingHasFinished”类型事件或可以用作句柄的漂亮技巧,以便在此 UI 操作后更改等待光标?
android - TimerTask条件后Android切换视图
我想建立一些条件来在 X 时间后将用户踢出活动。
我明白了一般的想法:
- 以毫秒为单位存储当前时间,以毫秒为单位从日历对象存储
- 确定我希望用户在活动中停留多长时间
- 添加多长时间 + 存储当前时间以确定启动关闭该活动的日历时间(以毫秒为单位)
- 将踢出时间与当前时间进行比较(以毫秒为单位)
对于最后一步,我发现我能找到的最好的“时间监听器”是 TimerTask,实现如下:
这是 AsyncTask 的最后一部分,计数和“时间监听”实际上是有效的,但是当涉及到替换run()
方法中的视图时,应用程序崩溃了
"Only the original thread that created a view hierarchy can touch its views."
我理解这个概念,但我不明白在解决函数中的计数后如何摆脱这个活动schedule
。此外,由于需要进行一些刷新,因此我需要“替换”视图而不是仅对此活动使用“finish()”。
我想使用另一个简单的 AsyncTask,但该schedule
函数需要 TimerTask
洞察力赞赏
android - Android - 如何在 UI 线程之外设置 View.GONE?
当用户按下按钮时,我想让视图消失(消失)。
我可以通过执行以下操作在onCreate()方法(主 UI 线程)中实现它:
但是,我希望能够在另一个线程中(在主 UI 线程之外)做同样的事情。我试图将上述内容放在我的线程中,但没有成功。
先感谢您!
## 编辑 ####
为了让自己更清楚,我想做这样的事情:
}
但是,这不起作用!我怎样才能解决这个问题?