Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Возврат управления Добавлено: 10.07.04 15:56  

Автор вопроса:  EROS
Парни, вот такая проблема...
К примеру имеется несколько форм с накладными и одна форма для работы с товаром. В этой форме юзер удаляет какой-либо товар или меняет цену и т.д., а он уже выдан в накладной.. Я пошел по следующему пути:
- При измении в товаре я через SendMessage рассылаю всем формам в MDI-приложение предварительно зарегестрированное сообщение.
- Форма его отлавливает и вносит измения(переданные в сообщении) в накладную
 Проблема заключается в том, что прога зависает,пока все накладные не обработают полученное сообщение.Другими словами управление не возвращается до окончания обработки сообщения другими формами..

Возможно ли сделать так чтобы накладные обрабатывали сообщение в фоновом режиме, т.е. без захвата управления?

Возможно надо использовать PostMessage? Но каков тогда порядок обработки полученных сообщений формой?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 10.07.04 16:30
Попробуй Пост... возможно и подойдет... правда лишь только при условии, что ты в качестве lParam не передаешь каких-нибудь данных, например UDT или ссылку на массив...
Т.к. в этом случае массив может быть уничтожен еще до окончания работы с ним других процедур...

Тут бы в самый раз запустить кол-во потоков равное кол-ву форм... на каждую по потоку... но т.к. это невозможно, стоит попробовать ПостМессадж...

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 10.07.04 17:01
SendMessage передает сообщение в оконную процедуру немедленно и не возвращается, пока сообщение не обработано. Сообщение обрабатывается сразу, остальные сообщения в очереди отодвигаются на потом. PostMessage передает сообщение в конец очереди сообщений и возвращается не ожидая, пока твоё сообщение будет обработано. В этом случае сообщение будет обработано только когда до него дойдёт очередь.

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 10.07.04 17:58
sne:
В lParam я планирую передавать значение Long(ID изменённого товара)..
Надеюсь, с ним ничего не случиться? В SendMessage этот вариант отлично работает.

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 10.07.04 18:18
Если товар для всех один, и это значение меняться не будет, то должно быть все впорядке...
по-идее...

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 11.07.04 03:31
sne:
А почему потоки не реальны?? В VB6 с этим трудности?

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 11.07.04 03:37
небольшие ;)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам