我是C#的新手,我正在尝试编写GUI应用程序。 我希望我的应用程序在单击Button_1后在GUI上表示一些图表。 图表的数量仅在运行时才知道。(我不知道在应用程序开始运行之前应该有多少个图表。)
当按下Button_1时,我想创建一个新线程,它将根据图表的数量自行创建新线程。(每个图表将由不同的线程构建)。 主线程(Form)只会向Form.control添加图表,以避免Form窗口冻结。 哪个是实现此类应用的最佳方式? Backgroundworkers?线程?
图表构建线程应如何将他们创建的图表发送到父线程,该线程应将它们传递给表单的主线程。
答案 0 :(得分:2)
不幸的是,Windows窗体不支持在后台线程上创建Controls
的解决方案,而Windows窗体不是线程安全的。 Controls
只允许在创建它们的线程上进行修改,因此没有安全的方法在后台线程上创建一个,然后将控制权交给UI线程。