![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
у меня два приложения одно записывает результаты в лист бох, а другое их обрабатывает
в первом помещаю в листбокс запись и отпровляю сообщение второму приложению об изминении второе приложение обрабатывает должно обрабатывать изминения, но изменеия на момент обработки на самом деле еще не произошли хотя в первом приложении инсетрстринг уже выполненно. Как дождаться действительного изминения в листбоксе, что бы только после него отправить соответсвующее сообщение? Команду слееп ставить не хочется. и циклы проверки тоже запускать не желаю.. -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Так ответить не получится - давай код посмотрим ?
И все-таки "изменения" |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
код прост
[CODE] 1 поток a.insertstring(......); soc.Send(...) // передается сообщения в другое поток, в данном случае поток т.к. пример проще, да сообщения в другой поток по сети кидается, не надо удивляться 2 поток онресейве(...) { перебор записей в цикле, но последней записи не находит т.к. последняя запись долго запихивается через инсерт стринг, по профилингу инсерт стринг берет 6 процентов всего времени программы, а по сети пакет проходит даже быстрее чем вставляется запись. } -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Давай по шагам:
a.insertstring() - она у тебя, как я понимаю, асинхронная. Так ? Пока строка вставляется ты посылаешь сообщение другому приложению. И вот это второе приложение откуда берет список строк ? |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
из первого приложения, каким макаром я получаю указатель на лист бокс не спрашывай...
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
А ты не хочешь сделать некий callback, который будет вызываться тогда, когда строка реально будет вставлена ?
Ну и там уже посылать сообщение. Или эта функция тебе не подвластна вообще ? Если так, то лучше чем остановиться до появления строки в списке, я не вижу. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
вопрос в том как узнать что она уже добавленна, лист бок сообщения такого не дает и инсерт стринг работу моей функции не преостанавливает
кстати такая проблема возникает и при работе с бд через сеть -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Ну тогда элегантного решения похоже нет. Можно передавать в Send параметры вставляемой строки а во втором приложении входить в цикл ожидания пока строка не появиться в списке. Но это тоже решение не очень.
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Это точно. На базах данных такое встречается регулярно. Вот и задумаешься о среднем слое, который такие вещи умеет. Нет в этом мире совершенства Может оно и к лучшему. Иначе остались бы мы без работы |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
AntonSaburov а что ты думаеш о сообщении вм_чендж класса внд, может оно поможет, только я еще не могу это проверить, может ты выскажеш свои соображения
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| keisik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
А есть такой вариант (правда, через одно место): меняешь лист бокс на лист контрол и изголяешься над колбэковой функцией сортировки, которая вызывается для пересортировывания элементов после добавления нового.
--------------------
...None of that can stop us now,we will make it through somehow... |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
keisik правда, что через жопу, но видать идея подходящая, буду пробывать, спасибо
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| keisik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
По большому счёту там можно обойтись минимум извращений - при добавлении нового элемента можно ловить и обрабатывать LVN_ITEMCHANGED.
--------------------
...None of that can stop us now,we will make it through somehow... |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
keisik спасибо, но это решение справедливо только для конкретного случая, а хотелось бы знать что дядя Били по этому поводу придпринял....
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |