1.软件与仪器连接,实现串口通信,仪器相同;(排除仪器问题
2.在不同电脑用相同的软件,软件有时速度快,有时速度慢;(排除电脑问题
3.软件出现的问题按天算,今天速度快,那任你关掉再打开,也还是快;慢了也同道理;
软件中用了延时,有用到:
A.       
application.processmessages;
sleep(y);
B.    
Application.ProcessMessages;
Now := GetTickCount();
还用到多线程:
hthread:=CreateThread(nil,0,@ThreadFuncASD,nil,0,ThreadID);

解决方案 »

  1.   

    Now := GetTickCount();这句话你用来干啥的?
      

  2.   

      to poolord:
      延时用的
      

  3.   

    我的意思是你用这个怎么做延时?GetTickCount是用来取系统启动到现在为止的运行时间的,大约50天会因为溢出重置一次。Now是取当前时间的函数。你用Now := GetTickCount();如何起延时作用?
      

  4.   

    to poolordNow := GetTickCount();next:=GetTickCount();
    if(Now -next)>?毫秒 thenelse goto..可以的
      

  5.   

    A.   
    application.processmessages;
    sleep(y);这样的用法有问题,
    你sleep 这个线程就会停止,如果是主线程的话,界面有可能冻结你可以在时间循环来替换sleep ,在这中间中application.processmessages;来防止界面冻结
      

  6.   

    to duck04551
      我觉得不是算法问题,如果是算法,那特定的操作就会产生特定的错误,不是吗?
      

  7.   

    http://www.cnxhacker.com/Soft/hacker/remote/200702/1327.htmlhttp://hi.baidu.com/fzcid/blog/item/44458b828f6e8ab46c8119b9.html
      

  8.   

    你用的什么串口控件?如果是spcomm控件本身就带多线程,没必要自己写线程。如果你的application.processmessages;是写在线程里,那确实是有问题,线程里从来不需要出现application.processmessages,你看看别人的线程,哪有这样用的?
      

  9.   

    如果真像楼上的james2222所说的,那就是说delphi有存在稳定性问题
      

  10.   

    找不到问题就往Delphi身上推,不错不错。看来你的编程水平超越了这里所有人,已经达到无可挑剔的地步了。
      

  11.   

    http://topic.csdn.net/u/20090523/16/93db0a9d-7788-4741-9592-76162d6011de.html
    这贴有代码