나도 처음에는 그렇게 생각했다. 그러나 옵션이 있습니다. 예를 들어, 우리는 인터럽트라는 단어로 OnTimer 스레드를 표시할 수 없으며 OnTimer 이벤트가 발생하면 이벤트의 순간에 정확히 호출되어 다른 이벤트의 처리를 중단한다는 것을 알 수 있습니다(단일 스레드 MSDOS 체계에 따라 - 스택 저장, 인터럽트 처리, 스택 복원, 제어 이전) . 그러한 계획은 더 간단한 방법으로 많은 문제를 해결할 수 있습니다. 예를 들어, 그러한 계획에 따라 호출된 OnTik은 꽤 좋아 보입니다. 여기에는 미묘함이 있습니다. 반복되는 입력 처리가 필요하지만(예: 작은 간격이 있는 두 개의 눈금) 일반적으로 해결할 수 있습니다.
하지만 여전히 꿈입니다. 나는 개발자들이 이것을 할 것이라고 믿지 않는다. 장점은 부인할 수 없지만.
예를 들어 OnTimer에서 백그라운드 계산을 타이머 기간의 절반 동안 작은 빈도(약 5초에 한 번)로 실행할 수 있습니다. 그리고 단순히 백그라운드 계산을 중단한 다음 올바른 위치로 올바르게 되돌릴 수 있는 틱 처리에 대해 걱정할 필요가 없습니다. 그리고 이제 눈금이 똑딱거리는 동일한 스레드에서 올바르게 처리하는 것보다 별도의 차트에 넣는 것이 더 쉽습니다. 같은 스트림에 있는 모든 사람에게 충분한 시간이 있지만.
인터럽트는 OnTick이 실행되고 OnTimer와 같은 더 중요한 이벤트가 도착했을 때입니다. OnTick의 실행이 일시 중단되고 OnTimer 코드가 실행된 다음 OnTick이 계속해서 다시 실행됩니다.
OnTimer, OnTick, OnTrade... 이들은 인터럽트입니다.
킥애스. 예, 끔찍한 꿈입니다.
킥애스. 예, 끔찍한 꿈입니다.
아니, 끔찍하지 않습니다. 문제를 피하는 방법에 대한 고대 계획이 개발되었습니다.
하지만 여전히 꿈입니다. 나는 개발자들이 이것을 할 것이라고 믿지 않는다. 장점은 부인할 수 없지만.
예를 들어 OnTimer에서 백그라운드 계산을 타이머 기간의 절반 동안 작은 빈도(약 5초에 한 번)로 실행할 수 있습니다. 그리고 단순히 백그라운드 계산을 중단한 다음 올바른 위치로 올바르게 되돌릴 수 있는 틱 처리에 대해 걱정할 필요가 없습니다. 그리고 이제 눈금이 똑딱거리는 동일한 스레드에서 올바르게 처리하는 것보다 별도의 차트에 넣는 것이 더 쉽습니다. 같은 스트림에 있는 모든 사람에게 충분한 시간이 있지만.
예를 들어, OnTick 핸들러에서 누군가 Sleep(100000); 글쎄, 이제 OnTimer , OnTrade는 전혀 살지 않거나 무엇입니까?
타이머 및 새 틱의 이벤트는 무시됩니다. 거래 이벤트 는 대기열에 남아 처리됩니다.
Tick, Trade, Timer 이벤트와 해당 OnTick, OnTrade, OnTimer 처리기를 혼동하지 마십시오.
예를 들어 누군가 Sleep(100000);을 OnTick 핸들러에 넣으면; 글쎄, 이제 OnTimer , OnTrade는 전혀 살지 않거나 무엇입니까?
사실 Yurich는 OnTick, OnTimer 인터럽트 처리가 아니라 고전적인 의미에서 인터럽트를 정확히 설명했습니다.
나는 그가 설명한 것을 이해합니다.
단일 스레드 응용 프로그램에서 데이터를 동기화하고 액세스를 관리하는 것은 미친 짓입니다.
이제 그것이 바로 그것입니다. 그러나 자살은 쉽습니다. 화면에 메시지 상자가 있고 부엌에서 차를 마시고 있을 때 더 나쁘다. Yurich는 미묘하게 말했습니다.
그것이 작동하는 방식입니다.