Язык программирования FreeBasic |
ThreadCreate
ThreadCreate(Proc, [Param=0],[stack_size=0])
Запуск пользовательских процедур в отдельный поток исполнения. (Встроенная в FreeBasic функция)
Proc - Адрес процедуры или функции
Param - любой параметр (чаще всего передают структуру или массив)
Stack_size - дополнительное количество зарезервированных байт для потока.
Пример1:
Dim Shared As Integer a,b
Sub Proc()
Do
a+=1
Loop Until a>120
? "Thread="; a
End Sub
ThreadCreate(@Proc)
Do
b+=1
Loop Until b>110
? a 'не успел еще, поэтому 0
? b
Sleep
Пример2:
Dim Shared terminate As Integer =0
Sub mythread (param As Any Ptr)
Dim a As Integer, b As Integer
While 1
b=0
While b<80
Print "*";
a=0
While a<&h7ffffff
a+=1
Wend
b+=1
Wend
If terminate=1 Then Exit Sub
Wend
End Sub
Dim thread As Any Ptr
Dim a As Integer, b As Integer
Print "Main program prints dots"
Print "Thread prints asterisks"
thread=ThreadCreate(@mythread,0)
Print "Thread launched";
b=0
While b<80
a=0
While a<&h3
Print ".";
a+=1
Wend
b+=1
Wend
terminate=1
Print "Terminate launched";
ThreadWait (thread)
Print "Thread terminated"
Sleep
Created with the Personal Edition of HelpNDoc: Free EPub producer