有关VB多线程
VB可不可以建立多线程程序?
如何可以怎么建立?
线程之间可以共享变量吗?
问题点数:20、回复次数:10Top
1 楼water_j(随心所欲)回复于 2002-04-01 13:34:22 得分 0
ACTIVEXdll 和ACTIVEX EXE有单线程、单元线程之分!
分别代表进程数为1和>1的情况!Top
2 楼gump2000(阿甘)回复于 2002-04-01 13:36:26 得分 0
可以,使用API,可以
具体请看Hardcore2的程序Top
3 楼sippey(sippey)回复于 2002-04-01 13:40:39 得分 1
upTop
4 楼gaoqi5037(高岐)回复于 2002-04-01 14:30:44 得分 0
不是用控件!是用代码,把程序的两个执行单元放在两个线程中。要求两下线程能
共享变量。
最好有示例代码!
分不够可以再加!Top
5 楼gaoqi5037(高岐)回复于 2002-04-01 15:24:34 得分 0
UPTop
6 楼gump2000(阿甘)回复于 2002-04-01 15:31:27 得分 0
hardCore2并没有使用控件,是代码
Top
7 楼gaoqi5037(高岐)回复于 2002-04-01 15:32:48 得分 0
hardCore2是什么?我看不懂。Top
8 楼gump2000(阿甘)回复于 2002-04-01 15:32:50 得分 18
http://www.21code.com/codebase/?pos=down&id=1092
http://www.21code.com/codebase/?pos=down&id=1093
Top
9 楼cmt123(cmt)回复于 2002-04-01 15:37:31 得分 1
多线程我现在还不懂!Top
10 楼gaoqi5037(高岐)回复于 2002-04-01 15:40:15 得分 0
谢谢Top
11 楼thorkhan(北方的河)回复于 2002-04-01 15:45:06 得分 0
'Creates a new thread
Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
'Terminates a thread
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
'Sets the priority of a thread
Private Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
'Returns the proirity of a thread
Private Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
'Enables a disabled Thread
Private Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long
'Disables a thread
Private Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
'Returns the handle of the current thread
Private Declare Function GetCurrentThread Lib "kernel32" () As Long
'Returns the ID of the current thread
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
'Consts
Private Const MAXLONG = &H7FFFFFFF
'Thread priority consts
Private Const THREAD_BASE_PRIORITY_IDLE = -15
Private Const THREAD_BASE_PRIORITY_LOWRT = 15
Private Const THREAD_BASE_PRIORITY_MAX = 2
Private Const THREAD_BASE_PRIORITY_MIN = -2
Private Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
Private Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
Private Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1)
Private Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1)
Private Const THREAD_PRIORITY_ERROR_RETURN = (MAXLONG)
Private Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
Private Const THREAD_PRIORITY_NORMAL = 0
Private Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
'Thread creation flags
Private Const CREATE_ALWAYS = 2
Private Const CREATE_NEW = 1
Private Const CREATE_NEW_CONSOLE = &H10
Private Const CREATE_NEW_PROCESS_GROUP = &H200
Private Const CREATE_NO_WINDOW = &H8000000
Private Const CREATE_PROCESS_DEBUG_EVENT = 3
Private Const CREATE_SUSPENDED = &H4
Private Const CREATE_THREAD_DEBUG_EVENT = 2
'Types and Enums
Public Enum ThreadPriority
tpLowest = THREAD_PRIORITY_LOWEST
tpBelowNormal = THREAD_PRIORITY_BELOW_NORMAL
tpNormal = THREAD_PRIORITY_NORMAL
tpAboveNormal = THREAD_PRIORITY_ABOVE_NORMAL
tpHighest = THREAD_PRIORITY_HIGHEST
End Enum
不過不建議用VB進行多線程﹐,我編過這樣的程序﹐簡單的程序還可以﹐複雜的VB就會出錯﹐不是程序出錯奧﹐是VB運行庫有錯﹐Top




