Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Вниз

Философский вопрос   Найти похожие ветки 

 
Labert   (2002-12-29 20:20) [0]

Я не знаю, как устроена Windows изнутри, поэтому вопрос тупой.

Вопрос про "событийно управляемое" программирование.

Как я понимаю, под Win программа работает так:
программа ждет событий - получает сообщение о событии - вызывается обработчик.

Если мы явным образом не создаем другие потоки, то поток (thread) один.

Далее.

Предположим, два события происходит почти одновременно (или одновременно). Т.е. обработка одного события еще не завершена, а
нужно обрабатывать другое. Вопрос: как в этом случае работает программа?

Конкретный пример:

Идет обработка события от таймера, и тут просходит событие типа OnClick. Или, например, еще одно событие от таймера.

А вот еще ситуевина:
предположим, идет обработка события от таймера:

procedure OnTimer(Sender:TObject);
begin
....
SomeObject.Method1;
....
SomeObject.Method2;
....
end;

И в это время происходит другое событие, например, по кнопке кликнули:

procedure OnClick(Sender:TObject);
begin
...
SomeObject.Free
...
end;

Не будет ли тут Run time ошибки?

вот такой вот вопрос.

прошу прощения за многословность.


 
Alex Konshin   (2002-12-29 20:37) [1]

События ставятся в очередь и обрабатываются последовательно. Этим, собственно, и занимается Windows.


 
Kotka   (2002-12-30 02:01) [2]

А я думал она только глючит и жрет ресурсы :-)


 
Keymaster   (2002-12-30 02:17) [3]


> Kotka ©

Windows успешно совмещает свои глюки с работой на протяжении нескольких лет............


 
Внук   (2002-12-30 09:31) [4]

>>Alex Konshin (29.12.02 20:37)
Если только это не асинхронное событие :)


 
В. И. Ленин   (2002-12-30 10:43) [5]

Учиться, учиться, учиться...


 
gsu   (2002-12-30 10:46) [6]

(-:|~


 
Sha   (2002-12-30 10:49) [7]

2 Alex Konshin (29.12.02 20:37)

События начинают обрабатываться последовательно.
Обработка более раннего события не обязательно заканчивается до начала обработки следующего.


 
F1   (2002-12-30 12:18) [8]

Если Application.ProcessMessages не ставить то все будет намано!


 
Alex Konshin   (2002-12-30 19:45) [9]

2 Sha: Это не противоречит тому, что я написал. Я и сам могу кого хочешь научить. Я могу обрабатывать события и не последовательно.
Для этого конкретного вопроса моего ответа вполне достаточно.
Вопрос был про "событийно управляемое" программирование, ответ был именно на этот вопрос.
Нет смысла толкать Теорию Относительности, если ученик еще не освоил обычную физику.


 
Sha   (2002-12-30 20:02) [10]

2Alex Konshin (30.12.02 19:45)

Согласен.


 
Fantasist   (2002-12-30 21:36) [11]


> Если только это не асинхронное событие :)


Асинхронные события помещаются в очередь асинхронных сообщений. ;)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
14-37381
Lokk
2002-12-25 13:30
2003.01.13
Помогите плиз


7-37398
Valerik
2002-11-01 15:28
2003.01.13
Системное программирование


3-36995
Filat
2002-12-19 10:29
2003.01.13
В D6 не работает dsEdit, dsInsert. Неизвестный идентификатор?


6-37241
V_Pavel
2002-11-01 12:27
2003.01.13
Передача данных при помощи сокетов.


4-37451
XED
2002-11-25 15:28
2003.01.13
Иконки рабочего стола





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский