Yurich: Прерывание - это когда исполняется OnTick, а пришло более важное событие, например OnTimer. Исполнение OnTick приостанавливается, исполняется код OnTimer, затем снова продолжает выполнятся OnTick.
OnTimer, OnTick, OnTrade... это и есть прерывания.
Я сначала тож так подумал. Но есть варианты. Например мы не можем отметить какой-нить OnTimer словом interrupts и знать, что при наступлении события онТаймер он будет вызван точно в момент события прервав обработку любых других событий (по однопоточной схеме MSDOS - сохраняем стек, обрабатываем прерывание, восстанавливаем стек, передаём управление дальше). Такая схема могла многие проблемы решать более простыми методами. Например достаточно приятно выглядит ОнТик вызываемый по такой схеме. Здесь тонкости есть - обработка повторных входов понадобится (напр. два тика с малым промежутком), но это решаемо вообще-то.
Да не, не страшный. Есть наработанные древние схемы как избежать траблов.
Но всё равно сон. Не верю, что разработчики будут это делать. Хотя плюсы есть неоспоримые.
Я б например мог запускать фоновые расчёты в ОнТаймер, с небольшой частотой (порядка раз в 5 сек) длительностью в половину периода таймера. И было бы не нужно беспокоиться об обработке тиков, которые могли бы просто прерывать фоновый расчёт, а затем корректно возвращать его на законное место. А сейчас проще вынести его на отдельный чарт, чем корректно обработать в том же потоке в котором тики тикают. Хотя времени на всех бы хватило в том же потоке.
Прерывание - это когда исполняется OnTick, а пришло более важное событие, например OnTimer. Исполнение OnTick приостанавливается, исполняется код OnTimer, затем снова продолжает выполнятся OnTick.
OnTimer, OnTick, OnTrade... это и есть прерывания.
Пипец. Да это страшный сон.
Пипец. Да это страшный сон.
Да не, не страшный. Есть наработанные древние схемы как избежать траблов.
Но всё равно сон. Не верю, что разработчики будут это делать. Хотя плюсы есть неоспоримые.
Я б например мог запускать фоновые расчёты в ОнТаймер, с небольшой частотой (порядка раз в 5 сек) длительностью в половину периода таймера. И было бы не нужно беспокоиться об обработке тиков, которые могли бы просто прерывать фоновый расчёт, а затем корректно возвращать его на законное место. А сейчас проще вынести его на отдельный чарт, чем корректно обработать в том же потоке в котором тики тикают. Хотя времени на всех бы хватило в том же потоке.
Например если в обработчике OnTick кто-то поставит Sleep(100000); что ж теперь OnTimer, OnTrade вообще не жить что ли?
события от таймера, и новых тиков будут проигнорированы. торговое событие останется в очереди и будет обработано
Не путайте события Tick, Trade, Timer и их обработчики OnTick, OnTrade, OnTimer
Например если в обработчике OnTick кто-то поставит Sleep(100000); что ж теперь OnTimer, OnTrade вообще не жить что ли?
Вооще-то Yurich описал именно прерывание в классическом смысле, а не обработку прерываний OnTick, OnTimer
Я понимаю что он описал.
Заниматься синхронизацией данных и разруливать доступ в однопоточном приложении это верх маразма.
Вот сейчас именно так и есть. Но суицид дело несложное. Хуже когда на экране мессадж-бокс, а я на кухне чай пью. Юрич тонко подметил.
Так небось так и работает.