2015-01-19 5 views
-1

Я новичок в C#, и я пытаюсь написать графическое приложение. Я хочу, чтобы мое приложение представляло некоторые графики в графическом интерфейсе, после нажатия кнопки Button_1. Количество графиков известно только во время выполнения. (Я не знаю, сколько диаграмм должно быть до того, как приложение начнет работать).C# windows form GUI многопоточность

При нажатии кнопки Button_1 я хочу создать новый поток, который будет создавать новые потоки в соответствии с количеством диаграмм (каждый график будет построен другим потоком). Основной поток (форма) добавит диаграммы в Form.control, чтобы избежать зависания окна формы. Какой лучший способ реализовать такое приложение? Backgroundworkers? Потоки?

Как диаграммные потоки должны отправлять диаграммы, которые они создали для потока отца, которые должны передать их в основной поток формы.

+1

Посмотрите на WPF MVVM. –

ответ

2

К сожалению, решение, в котором Controls создано на фоне потоков, невозможно с Windows Forms, которые не являются потокобезопасными. Controls разрешено изменять только в потоке, который их создал, поэтому нет безопасного способа создать его в фоновом потоке, а затем передать управление потоку пользовательского интерфейса.