我的程序要求是这样的,我有两段程序,分别控制两个设备,在这两段程序中都有
do while 
    如果条件不满足的语句
    doevents
loop 
此段代码实现的功能是当条件不满足的时候,程序不向下进行
但现在的问题是当我的设备有一个满足条件的时候,程序都不向下进行,只有等到两个都满足条件的时候才向下进行
怎么办啊,我想要的是谁满足条件,谁就向下进行,不满足条件的就继续等,请大家帮忙,应该怎样实现呢。谢谢

解决方案 »

  1.   

    嵌套 
    do while 
    如果条件不满足的语句
     do while 
    如果条件不满足的语句
    doevents
    loop 
    doevents
    loop 
      

  2.   

    把这两个循环分别放入两个timer控件里去分别跑,或者开两个线程分别跑。
      

  3.   

    do while 条件
    if 条件不满足的语句 then goto LL:
    loop
      

  4.   

    VB可不可以创建多线程呢?
    答案:VB本身不可以,但用API函数VB可以实现。在VB中创建线程用到以下几个API函数:'创建线程API'此API经过改造,lpThreadAttributes改为Any型,lpStartAddress改为传值引用:'因为函数入口地址是由形参变量传递,如果用传址那将传递形参变量的地址而不是函数的入口地址' 参数dwStackSize为应用程序堆栈大小,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'激活线程API,参数hThread为CreateThread创建的线程句柄Private Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long'挂起线程APIPrivate Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long 
      

  5.   

    VB多线程?不可取,DoEvents可以实现类似于多线程的功能,能释放CPU资源。
    DoEvents 函数
          转让控制权,以便让操作系统处理其它的事件。语法DoEvents( )说明DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。