我正在编写一个小程序来执行一些数据库操作,并且有一个关于设计的小问题。
我的程序的一部分会监视日志文件的更改,这涉及包含在类中的代码。所以用法是这样的:
auto fileWatcher = new FileWatcher(fileName);
fileWatcher.onChange(delegate);
fileWatcher.start();
一旦调用了 start 方法,就会在类中输入一个循环并监视文件。通过调用已注册的委托来处理更改。该循环针对不同的平台使用不同的监视方法。
我需要做的是停止当前的手表并更改观看的文件。
因为这是在一个无限循环中,我无法从外部检查,即在类之外,如果我需要中断循环只是因为控制永远不会返回给start()
方法的调用者。
我在这里错过了一些简单的东西吗?欢迎任何建议。我考虑过线程和消息传递,但这对于像这样简单的事情来说可能有点过分了?