我编写了一个类,其中主要操作数据库中的数据,但是数据量不确定,有时比较多,为了不影响其它程序使用,想加上“Application.ProcessMessages”,但是好像不能这么使用。有什么其它办法达到相似的功能吗?

解决方案 »

  1.   

    我主要目的是存储一个大的图片到数据库字段中,如果使用子线程可能会造成当前记录还没有完全保存好(因为图片较大),就移动到下一条记录了?
    我只是想在运行时先暂时放弃CPU的占用而已,不需要多线程。
      

  2.   

    我主要目的是存储一个大的图片到数据库字段中,如果使用子线程可能会造成当前记录还没有完全保存好(因为图片较大),就移动到下一条记录了?
    我只是想在运行时先暂时放弃CPU的占用而已,不需要多线程。
    ////////////////////////////
    使用多线程需要添加同步机制的,所以不会出现图片没有保存完,记录已经移动的问题。而且据我所知,如果你是用ADO控件操作数据库的话,再多线程中是可以不用作同步的,因为ADO本身是thread safe的。
    而且你说在运行时先暂时放弃CPU的占用,我想了半天都没有明白你是怎么在放弃CPU的情况下让你的程序被执行的。
      

  3.   

    就事论事而言, 除非你能在数据库组件的内部处理的回调函数中加入Application.PorcessMessages, 否则你是无法达到在处理的同时分发消息的,(主线程独占了CPU) 你只有等待处理完毕。所以建议你用线程就是解决这个问题。至于线程其他的优势和劣势,就没有必要讨论了。