Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Well78
1

Как реализуется многопоточность в VB?

05.12.2006, 17:08. Просмотров 1570. Ответов 1
Метки нет (Все метки)

Подскажите плз как реализуется многопоточность в VB, если конечно здесь таковая имеется.
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2006, 17:08
Ответы с готовыми решениями:

Многопоточность сервера не реализуется
Подскажите в чем ошибка в создании многопоточности для сервера. Я думал в main методе при...

Как реализуется шифрование
Здравствуйте, можете понятным языком (с понятными комментариями) написать, что нужно делать, чтобы...

Как в играх реализуется анимация?
Хотел узнать, как в спрайтовых играх реализуется анимация? Если я правильно понял, то в...

Как реализуется поиск по сайту?
Как реализуется поиск по сайту? Через базы данных? Если да, то как справляются с нагрузкой? Или она...

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

1
VladConn
3 / 3 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
05.12.2006, 19:09 2
Well78,
Ваш вопрос относится к VB, а не к VBA. Многопоточность на VB в принципе возможна, но VB не предназначен для таких задач.
Поставьте на форму кнопку cmdMyThreads и скопируйте код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub cmdMyThreads_Click()
    Dim lngThreadHandle As Long
    
    Dim objMySeconds1 As New MySeconds
    Dim objMySeconds2 As New MySeconds
    Dim lngVremyaNachala As Long
    lngVremyaNachala = GetTickCount
    glngOtklik1 = objMySeconds1.PyatSekund
    glngOtklik2 = objMySeconds2.DesyatSekund
    
    Debug.Print GetTickCount - lngVremyaNachala
    Debug.Print "Oba vizova zakoncheni..."
    
    glngOtklik1 = 0
    glngOtklik2 = 0
    
    lngVremyaNachala = GetTickCount
    lngThreadHandle = CreateThread(ByVal 0&, ByVal 0&, AddressOf FiveSecs, ByVal 0&, ByVal 0&, 0&)
    
    CloseHandle lngThreadHandle
    lngThreadHandle = CreateThread(ByVal 0&, ByVal 0&, AddressOf TenSecs, ByVal 0&, ByVal 0&, 0&)
    CloseHandle lngThreadHandle
    Do Until glngOtklik1 <> 0 And glngOtklik2 <> 0
        DoEvents
    Loop
    
    Debug.Print GetTickCount - lngVremyaNachala
    Debug.Print "Oba vizova zakoncheni..."
    
    glngOtklik1 = 0
    glngOtklik2 = 0
End Sub
Добавьте класс MySeconds и скопируйте в него код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Function DesyatSekund() As Long
    Dim lngVremyaNachala As Long
    
    lngVremyaNachala = GetTickCount
    Do Until GetTickCount - lngVremyaNachala >= 1000
    Loop
    DesyatSekund = 10
End Function
 
Public Function PyatSekund() As Long
    Dim lngVremyaNachala As Long
    
    lngVremyaNachala = GetTickCount
    Do Until GetTickCount - lngVremyaNachala >= 500
    Loop
    PyatSekund = 5
End Function
Добавьте модуль и скопируйте в него код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
Public Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public glngOtklik1 As Long
Public glngOtklik2 As Long
Public Sub FiveSecs()
    Dim objMySeconds As New MySeconds
    glngOtklik1 = objMySeconds.PyatSekund
End Sub
Public Sub TenSecs()
    Dim objMySeconds As New MySeconds
    glngOtklik2 = objMySeconds.DesyatSekund
End Sub
VladConn
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2006, 19:09

Как реализуется типичный итератор?
Хочется для своего списка написать класс-итератор. Вопрос: от какого класса лучше всего...

Как реализуется стилизация элемента?
Здравствуйте, подскажите пожалуйста, стилизация элементов в каком месте кода прописывается?? Ниже...

Подскажите как реализуется joint2d
Подскажите, пожалуйста, хочу реализовать момент в игре, что оружие, которое бросают, могло...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru