CreateThread

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

CreateThread

Сообщение Sasha_karasov » 08.01.2006 (Вс) 4:06

Дайкте кто нибуть пример на тему: "многозадачность" (CreateThread)
P.S.>в ya.ru был!
Удачи!
С уважением, Алексадр.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.01.2006 (Вс) 4:09

мультизадачность или многопоточность? :lol:
ХЎ

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 08.01.2006 (Вс) 4:23

Пример многозадачности: запускаем блокнот и калькулятор, вот тебе многозадачность :)
А насчет CreateThread, то поиск по форуму.
الفيجوال بيسك الرابح

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 08.01.2006 (Вс) 4:37

Все! :D
- Есть программа которая во время работы зависает, а мне нужно чтоб она еще отображала свои действия!
- у меня есть еще сервер. Например юзер просит у меня файл, то я выполняю Function SendFile(..........) ........., и программа виснет, а мне нужно чтоб сервак не вис чтоб я мог N числу юзеров давать файлы.

P.S. Просто я читал, искал инфу, по этой теме нашел статью, ну там толком не чего не сказано. Я пробывал пределть программу, ну VB выдает ошибки, и закрывается. Короче я не понил толком что такое "CreateThread"
Удачи!
С уважением, Алексадр.

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 08.01.2006 (Вс) 4:46

Doevents подойдет?
الفيجوال بيسك الرابح

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 08.01.2006 (Вс) 4:47

GM писал(а):Пример многозадачности: запускаем блокнот и калькулятор, вот тебе многозадачность :)
А насчет CreateThread, то поиск по форуму.

Да был я там.... Я даже анегдот нашел прикольный
{
Подходит сын к Билу Гейтсу и спрашивает
-Папа, а что такое многозадачность виндовз.
-Подожди сынок, счас дискету отформатирую и покажу.
}
Удачи!
С уважением, Алексадр.

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 08.01.2006 (Вс) 4:53

GM писал(а):Doevents подойдет?

нет! Пробывал не выходит:
Код: Выделить всё
fstate.SetState "Get db from FTP server..."
DoEvents
State = DownLoadFile(index)
Удачи!
С уважением, Алексадр.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.01.2006 (Вс) 5:55

таймеры рулят :D
ХЎ

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 08.01.2006 (Вс) 23:14

d3drm писал(а):таймеры рулят :D


А что толку? поток то один... Если только создавать таймер в ActiveX.EXE
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 09.01.2006 (Пн) 2:18

Sebas писал(а):
d3drm писал(а):таймеры рулят :D


А что толку? поток то один... Если только создавать таймер в ActiveX.EXE
Это как через ActiveX.EXE?
Удачи!
С уважением, Алексадр.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.01.2006 (Пн) 2:20

Sebas писал(а):
d3drm писал(а):таймеры рулят :D


А что толку? поток то один... Если только создавать таймер в ActiveX.EXE


а что если массив таймеров? не пробовал, просто предполагаю.
ХЎ

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 09.01.2006 (Пн) 2:22

d3drm писал(а):
Sebas писал(а):
d3drm писал(а):таймеры рулят :D


А что толку? поток то один... Если только создавать таймер в ActiveX.EXE


а что если массив таймеров? не пробовал, просто предполагаю.

Это как?
Удачи!
С уважением, Алексадр.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.01.2006 (Пн) 6:02

что как? как создать массив, или что такое таймер?
ХЎ

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 09.01.2006 (Пн) 18:49

Sasha_karasov
Хочешь многопоточность без особых усилий и проблем с нею?
Пиши на Асме! Или на Си. Или ставь Visual Studio.NET или Visual Studio 2005. Вариантов много... но на шестом VB нормальной многозадачности ты не добьёшся (если компилиться в Native Code, в P-Code можно, но криво)
Изображение

Tarantul
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 13.12.2004 (Пн) 16:39
Откуда: IUnknown

Сообщение Tarantul » 09.01.2006 (Пн) 20:02

Если функция подвисает, то никакие таймера ни помогут. Таймера посылают сообщения, которые обрабатываются при вызове DoEvents или при простое программы.
Мой выход - я так сейчас и делаю - писать свою NATIVE DLL на С(или С++), куда вставить подвисающюю функцию. Оформить внутри DLL ее как отдельный поток (CreateThread). Общаться с VB через общие переменные (в DLL иметь на них указатели). И все клас! Никаких зависаний. Только нельзя допускать, чтоб из второго потока вызывались функции VB-части программы. VB-часть для надежности должна быть сторого однопоточна.

Это и есть выход для тех, кто хочет писать многопоточные приложения на VB :wink:

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 16.01.2006 (Пн) 8:45

keks-n писал(а):Sasha_karasov
Хочешь многопоточность без особых усилий и проблем с нею?
Пиши на Асме! Или на Си. Или ставь Visual Studio.NET или Visual Studio 2005. Вариантов много... но на шестом VB нормальной многозадачности ты не добьёшся (если компилиться в Native Code, в P-Code можно, но криво)
Да я уже вкурсе, это мне придется всю прогу переводить на VB.NET!
P.S. Да нужно уже переходить на .NET
Удачи!
С уважением, Алексадр.

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 16.01.2006 (Пн) 8:46

Всем спасибо!
Удачи!
С уважением, Алексадр.


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

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

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

    TopList