- UID
- 8426
- 精华
- 积分
- 142
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
发表于 2025-11-30 16:18:42
|
显示全部楼层
|
楼主提到的多线程的全局变量共享问题,可以这样处理,将全局变量保存在form1窗体中,比如典型的多柜台售票例子:
在form1 代码中添加
Private mTicketCount As Long '票数
Public Property Get TicketCount() As Long
TicketCount = mTicketCount
End Property
Public Property Let TicketCount(ByVal v As Long)
mTicketCount = v
Label1.Caption = CStr(mTicketCount) ‘显示剩余票数
End Property
===========================
这两行借用楼主中的代码:
Dim f As Form
Set f = ObjFromPtr(GetSetting(App.Title, "frmTest", "Ptr", "0"))
===========================
读票数
Ticketnum=f.TicketCount
写票数时,用 Windows API 创建一个互斥量,保证同一时间只有一个线程能进入修改逻辑
WaitForSingleObject(hMutex, INFINITE)
f.TicketCount=f.TicketCount-1 '售出一张票
ReleaseMutex hMutex |
|