叶子的离开 发表于 2015-1-8 18:10:20

【叶子出品】FreeBasic争抢式多线程的简单范例

本帖最后由 叶子的离开 于 2015-1-8 18:21 编辑

这个东西是一开始学FB时做的一个小测试代码
本身没什么参考价值,但对于从VB转到FB的人来说这东西可以解除一些迷惑。

另外多线程属于负优化功能,多用并不会使程序效率提升,反而会导致效率变差,尤其是争抢式,请慎用。

#Include "Windows.bi"

Dim Shared i As Long
Dim Shared MeMutex As Any Ptr


Sub Thread1(Param As DWORD)
      Do While i < 100
                MutexLock(MeMutex)
                Print "线程" & Param & " - " & i
                i += 1
                MutexUnLock(MeMutex)
      Loop
End Sub


Dim As Any Ptr t1,t2
Print "开始输出"
MeMutex = MutexCreate()
t1 = ThreadCreate(Cast(Any Ptr,@Thread1),Cast(Any Ptr,1))
t2 = ThreadCreate(Cast(Any Ptr,@Thread1),Cast(Any Ptr,2))
ThreadWait(t1)
ThreadWait(t2)
MutexDestroy(MeMutex)
Print "输出完毕"
Sleep
页: [1]
查看完整版本: 【叶子出品】FreeBasic争抢式多线程的简单范例