‘当前线程挂起10秒 ’可以开一个新线程去读取脱机数据如连接,则继续执行补充dim i as integer #39超过100次退出,避免死循环 for;所以说,如果你真的需要使用多线程的话,强烈建议你换DELPHI或者VC 千万不要再尝试用VB做多线程了,只会浪费时间,而且VB操作内存是间接读写,非常慢,所以如果你要写对效率要求高的软件就不要用VB了。
间隔为100毫秒,输入代码,如for i=1 to 100msgbox quotabcdequotnexttimer1enabled=flaseunload me在可见的窗体上建立一个按钮,代码form2showmsgbox quot多线程正在运行中quot这时可见的窗体依然可以实现其他操作;多线程一般是不推荐用的,因为线程之间如果有共享资源的话会引起竞争,需要加锁处理而且线程间没有时序关系,所以你在调试中可能会出现异步处理结束顺序与开始处理顺序不一致的情况我在调试中已经发现该问题针对你提出。
方法 1 CreateThread 不用多说,万变不离其宗,这是 Win32 内创建线程的唯一系统方法,以下介绍的多线程创建方式虽然不直接接触这个 Win32 APi,但系统也是通过他创建的方法 2 TimerSetEvent 这个函数是 Win32;很简单,调用API函数CreateThread 但是用vb做多线程的关键不在于创建,而是在于线程的不稳定,其不稳定是由于vb6自身的控件如按钮文本框等不是线程安全的,怎么用你程序就可能怎么挂,所以这些个玩样儿在多线程中统统不。
多线程编程面试题
1、不行的,因为VB是不支持多线程的补充你使用WIN API的CreateThread是可以实现多线程的但是那是使用APIVB本身并不支持多线程首先断点续传需要提供下载的服务器支持,如果你不能重新连接这个资源,说明服务器不支持断点续传。
2、一些高级的面向对象编程特性比如重载,虚函数,继承,多态等都没有实现VB实现多线程的最好方法就是用多窗体来模拟比如做一个http服务器,那就每个连接建立一个窗体这样就可以处理更多的用户。
3、开始g_ReceiveThreadStart结束Dim waitStart As Long = + 1000 ‘超时 While g_ReceiveThreadThreadState lt If。
4、首先,你把你那些要运行很久的过程尽量放在一个过程中因为线程只能是过程,不能使函数,没有返回值的然后,在某个事件下这样写这里我假设你的那个很就的过程叫做 sub aaa调用如下Dim mythread As New System。
5、Sub MainIf GetEventHandle = 0 Then #39由于每个新对象的建立,都要执行Main过程,因此使用事件对象来进行判断hEvent = CreateEvent0, False, False, MyEvent #39在单元线程下,模块里的全局变量已经没有用了frmMa。
6、Runnable接口和Thread类是java中实现多线程的两中方法Thread类的构造方法有8个,但常用的只有4个,分别为Thread类中的两个最主要的方法1run包含线程运行时所执行的代码,即线程需要完成的任务,是线程执行体。
多线程编程注意事项
容易出现非法操作如果确实需要多线程的话,请使用控件,此处可以下载MThreadVB 打字不易,如满意,望采纳。
Option Explicit Public Declare Function CreateThread Lib quotkernel32quot ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long。
VB在使用的时候它是单线程的程序,你如果想要让它变为多线程的,那么你可以在视图当中选择多线程就可以实现。
1lpThreadAttributes这个参数表明函数的返回句柄是否可被子进程继承,如果可被继承,则指向一个SECURITY_ATTRIBUTES的结构,否则设为vbnull2dwStackSize这个参数设置线程的堆栈大小3lpStartAddress这个参数指明这个线程。