Mutithreading

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

Mutithreading

Сообщение vik » 25.03.2003 (Вт) 9:59

Как отправить в другой поток функцию не мной определённую?
Имеется ввиду MSComm_OnComm .

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.03.2003 (Вт) 10:34

Смотри в MSDN описание CreateThread. И вообще, не балуйся с MTA в VB ;) лучше.

vik
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 23.03.2003 (Вс) 17:15

Сообщение vik » 25.03.2003 (Вт) 12:24

Я Спрашиваю про не мной определённую функцию.
Имеется ввиду MSComm_OnComm .
Спасибо

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.03.2003 (Вт) 12:28

MSComm_OnComm - это не функция, а обработчик события :) Напиши свою функцию, запихай ее у другой тред и вызывай потом из обработчика. Так что ли :?

vik
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 23.03.2003 (Вс) 17:15

Сообщение vik » 25.03.2003 (Вт) 12:29

Я Спрашиваю про не мной определённую функцию.
Имеется ввиду MSComm_OnComm .
Спасибо

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.03.2003 (Вт) 12:51

Повторяю еще раз.

Private Declare Function CreateThread Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long



lpStartAddress As Long - это адрес функции, которая будет выполняться в треде. Можешь, если получится написать туда Addressof MSComm_OnComm, хотя я сомневаюсь что это получится.



Лучше написать свою функцию, которая будет исполняться с другом треде типа



MyFunc () As Long

......

End Function



CreateThread ..... AddressOf MyFunc ....



и ее же вызывать в MSComm_OnComm, а в самой функции уже обрабатывать что надо.

vik
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 23.03.2003 (Вс) 17:15

Сообщение vik » 25.03.2003 (Вт) 13:04

Спасибо , спасибо.
По ошибке послалось дважды.
Ты думаешь это хорошая идея вызывать в MSComm_OnComm?
MSComm.InputLen =1 (так нужно).......поступление данных бесприрывно.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.03.2003 (Вт) 13:08

Думаю что иного выхода просто нет ;) Потому что как тогда еще быть-то? :?


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 13

    TopList