ThreadCreate

Process ››
Parent Previous Next

Язык программирования 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



http://mneniya.ucoz.ru/

Created with the Personal Edition of HelpNDoc: Free EPub producer