GetThreadID 得到当前线程ID

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

获得当前多线程的线程ID

语法

结果 = GetThreadID()

参数

返回值

示例

1
2
3
4
5
6
7
8
9
10
11
12
Dim 线程ID
TracePrint "主线程无法得到线程ID: " & GetThreadID()

线程ID = BeginThread(多线程)
Delay 1000
TracePrint "启动的子线程ID: " & 线程ID

Sub 多线程()
Dim 线程ID
线程ID = GetThreadID()
TracePrint "子线程中获取的当前线程ID=" & 线程ID
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Global g_线程ID1, g_线程ID2
//由于要在子线程中判断线程ID, 所以这里需要使用全局变量
g_线程ID1 = BeginThread(多线程)
Delay 1000
g_线程ID2 = BeginThread(多线程)
Delay 1000

Sub 多线程()
TracePrint "子线程被启动了"
For 3
TracePrint "线程执行中..."
Delay 1000
Next
End Sub

Sub OnThreadExit()
Dim 线程ID
//线程结束触发本子程序, 通过命令得到对应线程ID
线程ID = GetThreadID()
TracePrint "发现线程ID=" & 线程ID & "的线程停止了"
If 线程ID = g_线程ID1 Then
TracePrint "线程1停止了"
ElseIf 线程ID = g_线程ID2 Then
TracePrint "线程2停止了"
End If
End Sub

备注

  • 无法得到主线程ID