也许我是在一起研究错误的架构。如果我们假设我们有UI、应用程序、域和基础结构层,那么表示文件系统观察者的好方法是什么呢?我的应用程序本质上希望从输入文件夹中获取新文件,并将它们移动到输出文件夹。当然,这是简化的,但我似乎找不到关于如何构造这样一个东西的好资源。
UI中的用例是添加和删除输入->输出对并添加新的。当添加一个新线程时,我希望一个文件系统监视程序在另一个线程中侦听,并从另一个线程调用它的回调(这样它就不会阻塞)。它的回调将由应用层用例处理程序设置,其中域对象的函数将插入到接口中(如果需要,也可以进行调整)。我会使用工厂从输入字符串创建IFileSystemWatcher。当删除一个线程时,我希望停止所有回调线程和文件系统监视线程。处理回调的线程池可能是个好主意。
我通常不确定线程应该在哪里创建和管理,文件系统监视程序属于哪一层,以及上面描述的实现细节属于哪里。我似乎找不到很多关于这类事件的信息,这些事件产生了调用回调的长时间运行的任务,在这些任务中,事件实际上不是域事件(据我所见)
我相信界面将在域内,因为域的目的是检测文件,但可能这是一个天真的视图,这是一个应用程序级别的事情。不管怎么说,我会把接口看作是
public interface IFileSystemWatcher {
void StartWatching();
void StopWatching();
void RegisterCallback(Action<FileSystemEvent> callback);
}
我被困在这件事上已经很长时间了,没有人可以问了。我试图使它具有足够的通用性,以便在帮助我的同时,对其他人也很有用。
如何处理和管理生成后台线程的事件。
发布于 2022-08-12 16:49:22
在我看来,线程问题是基础结构层,它可以处理引导文件监视程序,并且一旦收到通知,就可以将该事件转换为“域”事件。为什么你认为这些事件不是域事件?它们能成为另一个子域的一部分吗?
https://stackoverflow.com/questions/73330489
复制相似问题