ui-thread相关内容

循环遍历 ArrayList 时在后台添加标记

我从对象的 ArrayList 向 googleMap 添加标记.大约有 250 个标记;我什至必须将它们转换为位图来自定义它们.这是一项非常耗费资源的任务.但是它严重阻塞了我的 UI 线程. 我是这样做的: final HashMapmarkerIdMap = new HashMap();for(最终 NearLocation 结果:MainActivity.nearLocationL ..
发布时间:2021-11-17 23:23:03 其他开发

在 UI 线程中进行计算时的进度窗口

我想实现这一目标: 创建一个新窗口,它只是一个旋转加载器和一些静态文本,并显示它. 在 UI 线程上做一些计算(必须在那里完成) 关闭加载器窗口 目前,当我在加载器窗口上调用 .Show() 时,它根本没有加载,它只是作为一个空白窗口挂出(UI 线程被阻塞,我不想要) 如何让加载器窗口在计算完成的同时显示其内容? private void CopyToClipboard(o ..
发布时间:2021-09-28 20:33:27 其他开发

在 WPF 中渲染 UIElement 期间等待屏幕

我有一个使用 PRISM 的 WPF 应用程序.我有一个登录屏幕,成功登录后会出现一个包含许多项目的 TileListView 的新视图.这需要超过 10 秒的时间来渲染,因为控制必须计算很多等等.所有这些都按照标准行为使用 UI 线程,因为 WPF 中的渲染是在 UI 线程中完成的.是否可以在单独的窗口或类似的东西中显示像微调器这样的 WaitControl 或只是一个简单的动画?现在到动画停止 ..
发布时间:2021-09-28 20:16:10 其他开发

使用 SystemEvents.UserPreferenceChanged 和多个 UI 线程时 UI 冻结

在我的 C# Windows 窗体应用程序中有两个线程: 主线程(Program.cs) WorkerClass 线程(STA 公寓). 当有长时间运行的任务时,它会冻结/卡住整个进程,并且不会触发任何异常或通知......它会挂起应用程序. 内部应用程序仅处理记录(从 SQL 表中选择并插入 Access DB 表中) UI 更新将使用事件操作功能完成. 为卡住的 ..
发布时间:2021-09-27 19:23:25 其他开发

c#progressbar没有更新

我有一个 ProgressBarWindow,它有一个进度条和一个取消按钮,我用来报告文件 I/O 的进度.但是,尽管所有工作都在后台工作程序中完成,ProgressBarWindow 的 UI 线程和我的主窗口都挂起.进度条已呈现,就像我的主窗口一样,但在后台工作人员执行其操作时不会更新.在主窗口的构造函数的最后调用以下代码: iCountLogLinesProgressBar = new P ..
发布时间:2021-06-21 20:29:58 其他开发

LeakCanary(2.0)阻塞主线程导致我的检测测试失败

当我针对应用的调试版本运行检测测试时,泄漏的金丝雀会阻塞UI线程并导致检测测试失败.我不得不恢复到旧版本.在运行检测测试时,有什么方法可以避免运行leakcanary UI或同伴应用程序(不确定是什么阻止了UI线程)? 谢谢 解决方案 请参阅文档: ..
发布时间:2021-05-16 19:10:51 其他开发

Android服务和UI线程

我的应用程序中正在运行服务. 此服务具有一个用于向服务器发送消息的对象,以及一个用于获取和使用该对象的功能. 该对象是通过Service初始化的,但是当UI获取此对象并使用它时-看起来它在UI线程上使用了它.. 这是正确的吗?有没有一种方法可以使我的对象始终从服务线程运行? 公共类ServerMessagesManager扩展服务{私有ServerMessagesReceive ..
发布时间:2021-04-03 20:53:39 其他开发

OperationQueue.main与DispatchQueue.main

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

使用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 其他开发

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

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

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

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

RecyclerView在更新期间阻止ui线程

我的列表中有200多个项目。 RecyclerView会定期更新(每10秒)。 RecyclerView在更新期间会阻塞ui线程几秒钟。我正在使用 notifyDataSetChanged 方法刷新recyclerview。还有另一种防止冻结的方法吗?顺便说一句,我不想​​使用分页。 此方法每10秒运行一次: public void refreshAssetList(List ..
发布时间:2020-06-05 19:08:23 其他开发

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

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

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

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