Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-37031
delta
2003-01-02 14:15
2003.01.13
Конвертация типов


3-36915
Slava_V
2002-12-17 15:53
2003.01.13
Помоготе с отчетом ...


3-36921
Patrick
2002-12-17 18:48
2003.01.13
SQL для PARADOXа


1-37167
evgeniy2
2002-12-29 20:54
2003.01.13
консоль


6-37254
Deader
2002-11-11 22:05
2003.01.13
Люди помогите!! Как передать html-ку в броузер через сокет??????