c# - C# 线程问题

标签 c# multithreading forms program-entry-point

我有 2 个线程。 在我的工作线程(不是主线程)中,我创建一个图片框数组,有时我需要向主窗体添加一个新的图片框,但我无权访问此窗体。我在某处读到我需要使用调用方法,但我只知道如何更新一个图片框或标签。 我不知道如何用这段代码来做到这一点:

food[x].Location = new Point(100,100);
food[x].Size = new Size(10,10);
food[x].BorderStyle = BorderStyle.Fixed3D;
food[x].ImageLocation = "food.png";
this.Controls.Add(food[x]);
food[x].BringToFront;

有人可以帮助我吗?

最佳答案

在 WinForms 中,您应该只有一个 UI 线程,并且只有该线程应该创建或使用 UI 组件。

如果需要,请使用 BackgroundWorker 加载图像,并在 BackgroundWorker 完成时将 PictureBox 创建留给 UI 线程.

关于c# - C# 线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617977/

相关文章:

c# - 为什么 ReSharper 在未明确指定 CultureInfo 时会在 Char.ToString() 处发出警告?

c# - 具有多个项目的 ConfigurationSection

java - 通过 Java 套接字并发写入

ajax - 通过 AJAX 提交选择更改表单

javascript - JSP:使用javascript提交表单

c# - 让线程等待 n 个脉冲

c# - 实时聊天消息队列,ASP.NET

c# - 了解 async/await 以管理多个客户端

java - 如何从线程转储报告中找到线程卡住的根本原因?

php - 从html表单中将值保存在数据库中