小弟想写一个多线程序,当按command1的时候启动,
线程名为tread1,执行内容为label1.caption = now
请问整个代码该如何写呢?请高手帮忙
线程名为tread1,执行内容为label1.caption = now
请问整个代码该如何写呢?请高手帮忙
解决方案 »
- 如何删除串口获取数据
- 实时错误13 类型错误
- 嵌套结构体赋值出错!提示:未将对象引用设置到对象的实例
- setup factory 怎么产生有个性的安装文件图标
- Excel中列宽度的单位是什么?
- 在vb中如何处理图片?
- 怎么样将一个excel大工程自动生成若干个excel文件,且每个文件有若干个sheet?
- vb窗体问题?
- 建议VB版更换版主!这里的版主不再回答问题,一年多前的梁子到现在还记仇,不以CSDN和广大网友的利益为利益,专门公报私仇。。。罄竹难书
- 何用vb的CDO获取邮件的重要性??
- 关于VB写的程序如何不被关闭的问题
- 窗口调用SetCapture函数后,如何使窗口中的控件捕获鼠标事件?
'创建线程API'此API经过改造,lpThreadAttributes改为Any型,lpStartAddress改为传值引用:'因为函数的入口地址由形参变量传递,如果用传址那将传递形参变量的地址而不是函数的入口地址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'终止线程APIPrivate Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long'激活线程APIPrivate Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long'挂起线程APIPrivate Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long但是这些api是线程安全的,而VB的组建却不是线程安全的.
所以如果在线程的方法中引用多线程会发生致命错误.
所以你的想通过多线程修改窗体的Caption属性是不可能的.
当然也可能有我不知道的方法.
timer1.enable=true
end subsub timer1_timer()
label1.caption = now
end subsub command2_click()
timer1.enable=false
end sub
用Timer控件是无法实现多线程的!