现在小弟在用vb6.0编写程序,遇到异步的问题,具体如下:
点击按钮A时,调用外部的dll(C++),此dll是同步返回数据。此时如果远程未响应,我的程序界面就会卡死。因此我想到用timer来实现异步 ,但是不清楚具体的实现,希望高手给出相关代码!

解决方案 »

  1.   

    不行。异步必须在被调用方实现。可以采用多线程方式——将外部调用部分用 ActiveX EXE 封装起来。
    由主界面调用 ActiveX EXE 马上返回;
    ActiveX EXE 稍作延时后调用外部 dll,收到返回数据后再传送给主界面。参考
    http://topic.csdn.net/u/20090227/14/55bf85db-2c84-4c36-9a32-82420bca8d11.html
      

  2.   

    将需要异步完成的功能单独写成一个工程并生成exe
    主程序将异步任务用shell启动,并用命令行参数传递入参,该进程得到结果后将其放在临时文件里面供启动它的主程序读取。主程序如果发现异步任务超时,可用类似shell("taskkill 进程PID")的方法强制结束它。