Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А сделать парсинг данных в потоке, есть возможность?
Конечно есть,
но данные там уже для другого эксперта
Данные передались, а связь между буферами осталась.
Вернулись к тому с чего начиналось
Если Вы это
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Implements_for_Delegation
имеете ввиду, то есть.
Добавлено
Мне вообще-то все-равно в какой среде писать, просто на Делфи получаются нативные приложения
и привык уже... К тому же уже все переписано. :)
Имею в виду это
https://metanit.com/sharp/tutorial/3.13.php
У меня все взаимодействие между интерфейсом и потоками, между самими потоками, объектами классов, сделано через делегаты.
Ничего не "морозится", не тормозит, не крэшится, не... и т.д.)
Конечно есть,
но данные там уже для другого эксперта
Данные передались, а связь между буферами осталась.
Вернулись к тому с чего начиналось
Наверно вы как то не так делаете. Я выше описывал алгоритм как это сделать.
...
В главном потоке в буфере накапливаются данные. Из буфера пакет данных передается для обработки в соответствующий дочерний поток. Но только при условии, что этот поток отработал предыдущий пакет данных. По идее у вас параллельно должны обрабатываться несколько пакетов данных. Например один поток у вас только газпром обрабатывает если поток ни чем не занят и в буфере есть данные по газпрому отправляем ему пакет данных. Далее следующий поток например Яндекс если он не занят и есть данные шлем ему данные и т.д. Обработанные данные можно из буфера удалять.
Наверно вы как то не так делаете. Я выше описывал алгоритм как это сделать.
Понятно....
Имею в виду это
https://metanit.com/sharp/tutorial/3.13.php
У меня все взаимодействие между интерфейсом и потоками, между самими потоками, объектами классов, сделано через делегаты.
Ничего не "морозится", не тормозит, не крэшится, не... и т.д.)
Проблема не в взаимодействии между интерфейсом и потоками, окнами и т.д, а в том, что
из главного окна передается буфер в дочернее окно, если сразу не распарсить буфер при его передаче, а сделать это чуть позже в этом буфере появляются уже другие данные.
Вот я и спрашивал, есть ли какой-либо способ, при передаче буфера, сразу "обрубить" концы.
Даже картинку прикладывал.
Проблема не в взаимодействии между интерфейсом и потоками, окнами и т.д, а в том, что
из главного окна передается буфер в дочернее окно, если сразу не распарсить буфер при его передаче, а сделать это чуть позже в этом буфере появляются уже другие данные.
Вот я и спрашивал, есть ли какой-либо способ, при передаче буфера, сразу "обрубить" концы.
Даже картинку прикладывал.
Что значит "чуть позже"?
Если программа не успевает обрабатывать данные, то это одно. А если буфер перезаписывается из-за отсутствия синхронизации, то это другой вариант.
Например, у меня в обработчике тикового потока используется на входе кольцевой буфер с синхронизацией. Поскольку тики идут не равномерно и не известно заранее как.Что значит "чуть позже"?
Если программа не успевает обрабатывать данные, то это одно. А если буфер перезаписывается из-за отсутствия синхронизации, то это другой вариант.
Например, у меня в обработчике тикового потока используется на входе кольцевой буфер с синхронизацией. Поскольку тики идут не равномерно и не известно заранее как.Вот что значит "чуть позже"
Сначала передается буфер, а потом инициируется его обработка в дочернем окне по PostMessage
Проблему решил, как и говорил ранее сделал свой буфер для каждого дочернего окна
Всем спасибо
И потоки освоил и программа быстро заработала :)
Оказалось, что не все :(
Если работают все советники, то наглухо вешается процессор.
Нужно как-то ставить поток в режим ожидания....
Оказалось, что не все :(
Если работают все советники, то наглухо вешается процессор.
Нужно как-то ставить поток в режим ожидания....
Потокам можно ставить приоритеты. Попробуйте ставить приоритет чуть ниже нормального. Lower вроде называется точно не помню.
Потокам можно ставить приоритеты. Попробуйте ставить приоритет чуть ниже нормального. Lower вроде называется точно не помню.
Приоритеты тут не причем. Просто Execute "молотит" без конца, тем самым вешает процессор.
Просто нужно организовать паузу внутри Execute (самого потока) WaitForSingleObject(PostEnter, INFINITE);
Чем я сейчас и занимаюсь :)
Пришло сообщение - ворота открылись...