单独线程上的C#UI - c#

我经常在各种论坛,教程或SO上看到有关在UI上运行UI的建议,然后在程序的其余部分保持UI的响应速度。
在实践中如何做到这一点?这是否意味着在加载表单之前编辑program.cs以启动线程?还是意味着从表单内部激活的任何非平凡操作都会派生线程并使用该线程?还是有一些设置?您如何使用它?

参考方案

为了使UI保持响应,您应该在单独的线程中运行其他耗时的操作。通常,用户界面操作应在.NET的主(UI)线程中完成。

有几种方法可以为操作使用单独的(后台)线程。对于Windows Forms应用程序,最简单的选项是BackgroundWorker组件。

您也可以自己创建一个Thread对象。但是,在调用UI方法或更改创建的线程中的UI控件属性时,应格外小心。正如我所说,所有用户界面操作(显示表单,更改控件文本或位置等)都应该在UI线程中完成。否则,您将获得例外。为此,可以使用Control.Invoke方法。

为什么我无法更新字典中的test__user_id密钥? - python

我正在更新包含数据的字典,dict_temp = {'description': 'hello', 'id': 683, 'status': u'pending', 'test__user_id': 430} 我试图使用dict_temp …

在Java游戏中实现拖放 - java

我正在做一个棋盘游戏,它是一个具有5种不同颜色图像的8x8网格。只要对象在行或列中彼此相邻,就可以交换对象。如果切换导致行或列中的3个或更多对象相同,则将其删除。如果切换未导致匹配,则不会发生切换。移除对象后,木板会塌陷,因此位于移除对象上方的对象会掉落到位,而新对象会从顶部掉入以填充空间。我想知道一种实现拖动操作和使对象掉落的好方法。我应该使用分层窗格吗?…

Laravel 5.4 Auth::User()与关系不起作用 - php

我有Table Vendors(用于测试Auth关系)和Table Vendor_users,但是我用Auth::user()不是关系和这个数据库在供应商模型中 protected $table = 'vendor_users'; public function Vendor_test(){ return $this->belong…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…