Нужен совет в выборе модели..

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
neprden
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 04.10.2003 (Сб) 19:37

Нужен совет в выборе модели..

Сообщение neprden » 09.09.2006 (Сб) 11:34

Пишу пинговалку под себя ... Задача : есть список серверов необходимо снимать задержку и вариацию задержки и оповещать при некоторых значениях - в общем стандартный трап.. Но поскоку сервера имеют различный ртт придется организовать многопоточность , т.е на кахдый сервак свой поток для пинга .. планируетс ячтобы каждый поток по мере прибытия эха или таймаута записмывал данные о нем в пипку .. запись в пипку придется синхронизировать мьютексом .. Теперь два пкти чтения из пики
1) В основном потоке программы Используя асинхронное чтение т.н вызываем ReadFileex в ее колбеки читаем данные и вызываем ее опятьт и тд. по кругу...

2) еще один поток бесконечно опрашивающий пипку и по прибытии передающиий данные основному потоку посредством сообщения (допустим в текстбокс а там обрабатываем change)
Какой из них лучше или оба полное г.. ? Может события примутить ?

neprden
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 04.10.2003 (Сб) 19:37

Сообщение neprden » 09.09.2006 (Сб) 15:24

создал проект с 3 потоками 1 "родной " 2 читает 3 пишет .. В иде вроде все работает а когда компишишь exe . вылетает .. т.е когда я нажимаю кнопку котроая создает поток который пишет в пайп в иде все нормально а екзешник сразу вылетает ... что не так ?

neprden
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 04.10.2003 (Сб) 19:37

Сообщение neprden » 09.09.2006 (Сб) 16:38

в общем при вызове любой апи функции в потоке екзешник падает .. почему ? в иде прекрасно работает все

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 09.09.2006 (Сб) 18:41

Ответ на этот вопрос прост и краток: используй только API (никаких VB-шных объектов) И компилируй только в P-Code.

Дополнительный ответ включает следующее:
1) В Интернете была статья Дана Эпплмана о многопоточности (совет: искать надо по сайту desaware.com.) Там все обстоятельно разжевано. Рекомендую. Если искать лень, прямая ссылка - Майкрософтовский пример. Простой, но содержательный:
http://msdn.microsoft.com/library/defau ... cation.asp
2) Хочешь использовать многопоточность там, где это делать по всем правилам НЕ СЛЕДУЕТ (то есть, в проектах Standard EXE)? Ищи по форуму: "многопоточность" и "multithreading". Если наткнешься на выложенный мной пример с TLB (автор Srideep Prasad), качай :) Будет, хоть и криво, работать в EXE (использовать, опять же, можно только API). Убедительная просьба: в IDE не отлаживать.
Моду создают модоки, а распространяют модозвоны.

neprden
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 04.10.2003 (Сб) 19:37

Сообщение neprden » 09.09.2006 (Сб) 19:12

про компиляцию в р-код оказалось очень ченное замецание
Пошел в обход :-) написал свой оцикс .... Доведу проект до конца и вернусь к к многопоточному..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.09.2006 (Сб) 20:22

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList