Многопотоковость в Visual Basic (исходники)
Philipp Weidmann
Пример показывает как встроить в приложение возможность создавать параллельные потоки, управлять ими и завершать их по средствам API вызовов. Конечно это не шедевр, но начать с этого примера стоит. Компилятор: Visual Basic 5.0, 6.0. Самый первый и важный - это вызов CreateThread : Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long Что она делает? Она создаёт новый поток в Вашем приложении. Параметры :
Функция CreateThread возвращает handle созданного потока. Этот handle подобен Window handle (hWnd). Он позволяет Вам управлять потоком. Если функция CreateThread вернула 0, то поток по каким либо причинам НЕ был создан. Следующий важный API вызов - это SetThreadPriority : Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long Устанавливает приоритет для указанного потока. Параметры :
Для получения текущего приоритеты потока используется GetThreadPriority . Так же интересны два следующих вызова, SuspendThread и ResumeThread : Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long SuspendThread останавливает поток, а ResumeThread продолжает его выполнение. Параметры:
И последний вызов, это TerminateThread - завершение потока. Этот Вызов важен, потому что Вам необходимо завершить все потоки перед завершением Вашего приложения, а иначе может произойти ошибка. Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long Параметры :
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=4762 |