我有一个Windows服务,它接收一堆文件的名称并对这些文件执行操作(压缩/解压缩、更新数据库等)。根据发送到服务的文件的大小和数量,操作可能需要花费一定的时间。
(1) 发送请求给该服务的模块将等待文件被处理。我想知道是否有一种方式在服务中提供回调,以便在完成文件处理时通知调用模块。请注意,多个模块可以同时调用服务来处理文件,因此服务需要提供某种类型的TaskId。
(2) 如果调用了一个正在运行的服务方法,并且再次调用了同一个服务,那么该调用将如何被处理(我认为只有一个线程与该服务相关)。我发现当服务处理方法需要花费时间时,与服务关联的线程开始增加。