UI 和后台线程之间的交叉线程

发布于 2024-12-05 16:44:12 字数 125 浏览 1 评论 0原文

我编写了一个程序,允许用户界面线程几乎随时访问填充的数组。该数组由对象内的单独后台工作线程填充。

当用户界面线程访问这个数组时会发生什么?访问之前会自动锁定吗?

我正在使用托管 C++/CLI 编写代码。

I've written a program that allows the user interface thread to access a populated array at almost any time. This array is populated by a separate background worker thread within an object.

What will happen when the user interface thread accesses this array? Will it automatically lock it down before accessing it?

I'm writing my code in managed C++/CLI.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

农村范ル 2024-12-12 16:44:12

阵列不会自动锁定。如果从多个线程访问它,则您有责任提供同步。

另一种方法是通过 Control.BeginInvoke 调用从工作线程序列化数组更新 - 在这种情况下,仅从 UI 线程访问/更改数组,并且不需要同步。

Array is not locked automatically. If it is accessed from multiple threads, it is your responsibility to provide synchronization.

Another way is to serialize array update from a worker thread(s) through Control.BeginInvoke call - in this case array is accessed/changed only from UI thread, and synchronization is not needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文