Я не могу получить вашу реальную среду из того, что вы написали, но:
Основные требования:
- Иметь общий сервер времени, доступный для A и B.
- Назначьте время для события / записи, созданной B.
- Время поиска для события / записи на A.
Если одна из этих не может быть предоставлена, я думаю, что нет никакого способа решить,
Если время на локальных компьютерах не может быть синхронизировано достаточно точно, вам необходимо настроить свой собственный сервер времени.Я бы:
Напишите сервер времени, который работает на B и, например, использует Win32 :: GetTickCount в качестве текущего времени.
Сделать текущее время из B доступным для A через соединение tcp (илиточнее: последовательное соединение).
Сохранение времени в записи / событии, произведенном на B
Когда новая запись / событие обнаруживается на A, получить время из записи и получить текущее время на Bчерез TCP-соединение.
Разное время и получить результат.(В этом нет большой математики)
Вы также можете использовать сетевой диск в качестве канала для передачи текущего времени, но я думаю, что синхронизировать доступ к файлам довольно сложно.Я полагаю, что установить TCP-соединение проще.
Может быть, использование LastWriteTime из NAS может быть другим способом получения общего времени.Если все работает так, как я предполагаю, вы можете просто непрерывно записать файл на B и получить LAstWriteTimeSTamp файла на A. Это может быть ваш сервер времени.
Возможно, вы захотите прочитать об установке TCP-соединениямежду двумя компьютерами или выясните, как назначается / запрашивается LAstWriteTimestamp файла в NAS.
Что-то вроде: On B: File.WriteAllText ("\ nas \ timestamp.txt", Guid.NewGuid ());A: aTimeStamp = new FileInfo ("\ nas \ timestamp.txt"). LastWriteTime Возможно LAstWriteTimeUTC.
Вам необходимо проверить, достаточно ли точны для вас LastWriteTime и задержка через nas.
Надеюсь, это немного поможет.