【发布时间】:2014-03-07 20:54:00
【问题描述】:
是否可以创建一个简单的线程,它运行一条 SQL 语句,然后关闭应用程序但让该线程运行直到它完成(主窗体仍然正常关闭 - 不等待线程完成)。
我正在升级一个将一些测试数据写入日志文件的应用程序,并且我想将该日志文件批量插入到数据库中。因为有很多数据并且处理它的 sql 存储过程需要一两分钟才能完成,所以我创建了一个运行存储过程的线程。该线程在应用程序的生命周期中经常运行,但现在我想实现,以便在用户完成测试并关闭应用程序后,日志中尚未在服务器上的其余数据是同步。这样,如果所有数据都已同步,我就可以避免检查前几天的日志。
如果我使用waitfor 函数,整个应用程序在存储过程完成之前不会关闭,这是不可取的,因为之后应用程序无需执行任何操作。存储过程会处理所有错误,因此无需在应用程序中处理错误。
如果我没记错的话,这是在 linux 中经常做的事情,一个过程会创建另一个过程,然后结束,然后子 proc 被孤立,这就是恶魔的运行方式。但我不知道这在 Windows 上是否可行。
【问题讨论】:
标签: multithreading delphi