Не могу найти в справке про "Указатели на функции" - страница 4

 
alexsis78:
И OnChartEvent - уже третий поток. Ура, мы кликнули и ждем. Что-то опять ушло на обработку. Как вы считаете, нужна ли здесь синхронизация, если вычисления события одного тика занимают хотя бы больше 50 миллисекунд?
а забыл, второй поток OnTimer куда можно скидывать всякий вычислительный продолжительный мусор
Один советник - один поток, OnTimer не создает собственный. Появился Ренат, он меня поправит, если я ошибаюсь.
 
Ренат, звучит здоровски. Но каждый сервис, я так понял, будет все равно в контексте сокета.
А вот "доп. расчетные потоки" - это реально кайф. Заводим свой какой-то контекст расчета, старт, стоп, результ - это очень похоже на таски с CL кстати.
 
Алексей, GetCurrentThreadID тебе в руки с импортом из kernel32.dll. Не могу поверить, что ды еще до сих пор не проверил.
 
OnTimer не создает собственный. Он живет в потоке таймера. И есть очередь ивентов таймера точно такая же, как и в OnCalculate или в OnChartEvent.
Да, напомню, у эксперта один поток на все. 
За мультипотоками - к индюкам.
 
Renat Fatkhullin:

Кстати, мы через некоторое время введем понятие сервисов.

В терминале можно будет запускать независимо множество сервисов, не привязанных к чартам/счетам и работающих постоянно вне зависимости от подключений/переключений к счетам.

Это будет являться основой для написания независимых датафидов, а также позволит использовать дополнительные расчетные потоки.

 

Вот бы требующих мультипотоков и прямых указателей схлестнуть с теми, для кого 'MT4 - наше все" и "MQL5 сложнее".

Это, конечно, было бы прорывным шагом! Я сразу представил, как это можно вкусно использовать )

А насчет "MQL5 сложнее" - у всех же разный уровень. Ведь почему-то новички не лезут программировать на Нинзе или cAlgo, идут на МТ4/5. Порог вхождения все же неизмеримо меньше. Но многие так на этом и останавливаются.

 
alexsis78:
Алексей, GetCurrentThreadID тебе в руки с импортом из kernel32.dll. Не могу поверить, что ды еще до сих пор не проверил.
Что я не проверил? Выражайся четче пожалуйста.
 
alexsis78:
OnTimer не создает собственный. Он живет в потоке таймера. И есть очередь ивентов таймера точно такая же, как и в OnCalculate или в OnChartEvent.
Да, напомню, у эксперта один поток на все. 
За мультипотоками - к индюкам.

Эта очередь пропадает в случае задержки в OnTimer. Или ты предлагаешь хранить эти ивенты и потом их всем скопом выдавать в программу? )))

ЗЫ: Вопрос, если ты не торгуешь, зачем тебе этот форум и MQL? 

 
OnTimer не очередь, тут я чуть прогнал. Там TryLock стоит. Если OnTimer занят то событие скипается.
На вопрос зачем мне MQL и форум - я пишу софт, писал же.
Насчет GetCurrentThreadID

#import "kernel32.dll"
   int GetCurrentThreadID()
#import

.... 

void OnTimer()
{
    printf("OnTimer thread = %d", 
GetCurrentThreadID)
}

.... 

void OnCalculate()
{
    printf("
OnCalculate thread = %d", GetCurrentThreadID)
}


.... 

void OnChartEvent()
{
    printf("
OnChartEvent thread = %d", GetCurrentThreadID)
}

где-то так

 
alexsis78:
OnTimer не очередь, тут я чуть прогнал. Там TryLock стоит. Если OnTimer занят то событие скипается.
На вопрос зачем мне MQL и форум - я пишу софт, писал же.
Насчет GetCurrentThreadID

#import "kernel32.dll"
   int GetCurrentThreadID()
#import

.... 

void OnTimer()
{
    printf("OnTimer thread = %d", 
GetCurrentThreadID)
}

.... 

void OnCalculate()
{
    printf("
OnCalculate thread = %d", GetCurrentThreadID)
}


.... 

void OnChartEvent()
{
    printf("
OnChartEvent thread = %d", GetCurrentThreadID)
}

где-то так

Во первых, код нерабочий, даже с исправленными ошибками. Во вторых, давно неинтересно ковырятся в кишочках ОС, если это не связано с конкретной задачей. А задача ясная и простая - выйти в 2017 на стабильные 100%/мес. Наверное, у меня уже совсем закончилось детство в одном месте))
 
Renat Fatkhullin:

Это будет являться основой для написания независимых датафидов, а также позволит использовать дополнительные расчетные потоки.

Спасибо, просто шикарно. 
Причина обращения: