|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.12.2015, 22:50 | #1 |
Регистрация: 23.12.2015
Сообщений: 2
|
Передача chart в поток через BeginInvok
Добрый день.
Идея в следующем. Из главного окна приложения вызывать во второстепенном потоке метод который будет вычислять и строить графики на chart1 и chart2. И оставлять на главной форме активной только одну кнопку чтобы можно было выйти из этого метода раньше(если пользователь ввел некорректные данные, метод может выполняться долго). Создается делегат этого метода. И из второстепенного потока через BeginInvoke он через делегат вызывается. Но при отладки проекта вылетает ошибка, что элемент управление не может использоваться двумя потоками. Ругается именно на chart. Вот листинг программы. Сначала я определяю делегат Код:
Затем в обработчике private void button4_Click_1 вызывается следующая функция Код:
Код:
Она появляется только тогда, когда в коллекцию точек chart1 методами Код:
Так вот можно ли как то корректно передать в фоновый поток chart??? Или как увеличить количество памяти выделенное под точки chart1.Series[0].Points и chart1.Series[1].Points??? Последний раз редактировалось Stilet; 30.12.2015 в 10:22. |
24.12.2015, 15:22 | #2 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
посмотрите в сторону оператора lock.
хотя по мне так лучше переработать механизм обработки. Например все ваши второстепенные потоки занимаются только расчетом данных и складывают их в некий буфер в том же классе что и чарты. А в основном потоке крутится самый простой таймер и выводит данные в чарт. То есть доступ будет только у таймер... а у потоков будет у каждого свой буфер. и никто никому мешать не будет.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
29.12.2015, 21:39 | #3 |
Регистрация: 23.12.2015
Сообщений: 2
|
Там очень много переделывать(((
Для корректных изменений в chart. Я каждый раз при обращении к chart из другого потока проверяла используется ли он каким либо потоком. Если да то ставила обращение в очередь Код:
Последний раз редактировалось Stilet; 30.12.2015 в 10:22. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметра в поток | Sanprof | Общие вопросы Delphi | 10 | 08.07.2015 14:11 |
.NET 4.x Передача в новый поток метода с параметрами из другого класса | maxspace | C# (си шарп) | 1 | 25.03.2013 14:26 |
Потоки: передача параметров в поток | [MoNAMur] | Общие вопросы Delphi | 1 | 09.11.2011 17:23 |
Создание потока,передача функции в поток | asdasys | Помощь студентам | 4 | 25.02.2011 17:30 |
Передача параметра в поток | joker | Win Api | 10 | 22.12.2007 12:53 |