Служба Windows WCF - длинные операции / обратный вызов вызывающего модуля

У меня есть служба Windows, которая берет имя группы файлов и выполняет с ними операции (zip / unzip, обновление базы данных и т. Д.). Операции могут занимать время в зависимости от размера и количества файлов, отправляемых в сервис.

(1) Модуль, отправляющий запрос в эту службу, ожидает обработки файлов. Я хочу знать, есть ли способ обеспечить обратный вызов в службе, который уведомит вызывающий модуль, когда он закончит обработку файлов. Обратите внимание, что несколько модулей могут вызывать сервис одновременно для обработки файлов, поэтому сервису нужно предоставить какой-то TaskId, который я предполагаю.

(2) Если метод службы вызывается и выполняется, и к тому же сервису делается другой вызов, то как будет обрабатываться этот вызов (я думаю, что только один поток связан со службой). Я видел, что когда службе требуется время для обработки метода, потоки, связанные с этой службой, начинают увеличиваться.

Ответы на вопрос(3)

Ваш ответ на вопрос