|
|
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
есть у меня нить. в ней есть окно. у окна есть процедура обработки сообщений. делаю SendMessage(mywnd, mymsg1, ..); из другой нити моя нить начинает обрабатывать сообщение mymsg1 - и делает SendMessage(mywnd, mymsg2, ...); по идее SendMessage возвратиться только после обработки сообщения. но ведь в данный момент моей нитью уже обрбатывается сообщение mymsg1. внимание, вопрос: будет ли блокировка - что-то вроде deadlock-а ? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 14:49:28 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
нет, ключевое слово: очередь сообщений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:02:40 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
не, я понимаю, что там очередь, но нить-то одна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:06:28 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--не, я понимаю, что там очередь, но нить-то одна Запросто все можно грохнуть из-за переполнения стека. WinSDKThe SendMessage function sends the specified message to a window or windows. The function calls the window procedure for the specified window and does not return until the window procedure has processed the message. В очередь сообщения попадают по PostMessage, а так обычная рекурсия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:30:18 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- пишет: > по идее SendMessage возвратиться только после обработки сообщения. > но ведь в данный момент моей нитью уже обрбатывается сообщение mymsg1. > внимание, вопрос: будет ли блокировка - что-то вроде deadlock-а ? Да, запросто может быть. И часто бывает. А чтобы не было, есть SendMessageTimeout(). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:37:58 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
egorych пишет: > нет, ключевое слово: очередь сообщений SendMessage не работает через очередь сообщений. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:38:29 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
> В очередь сообщения попадают по PostMessage, а так обычная рекурсия. тоесть, SendMessage не ставит сообщение в очередь, а сразу вызывает WindowProc? но в таком случае, WindowProc будет исполнена в той же нити, в которой произошел вызов SendMessage? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:44:16 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
все ясно: If the specified window was created by the calling thread, the window procedure is called immediately as a subroutine. If the specified window was created by a different thread, Windows switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 15:57:03 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv egorych пишет: > нет, ключевое слово: очередь сообщений SendMessage не работает через очередь сообщений. Posted via ActualForum NNTP Server 1.4 Мда... лажанул, прошу простить великодушно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2007, 17:13:33 |
|
||
|
Блокирует ли WindowProc саму себя ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- пишет: > тоесть, SendMessage не ставит сообщение в очередь, а сразу вызывает > WindowProc? > но в таком случае, WindowProc будет исполнена в той же нити, в которой > произошел вызов SendMessage? Нет, не в той же. Так как ты это описал, происходит только если вызывающий и вызываемый работают в одном потоке. А если нет - вызывающий ждет вызываемого. А у вызываемого в очередь сообщений сообщение не ставится - напрямую вызывается WndProc. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2007, 00:16:54 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=272&tid=2027983]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
94ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 415ms |

| 0 / 0 |
