Как синхронизировать вывод 2 FileSystemWatcher - PullRequest
0 голосов
/ 15 декабря 2011

Я создал 2 FileSystemWatcher, и теперь я хотел бы синхронизировать две файловые системы.На данный момент вот пример выходных данных журналов: (Обратите внимание, что изменение формата относится к другим FSM наоборот)

Dec 15 15:28:19,8167876|: INFO   |Web server call start_device_discovery() for: 10.191.20.0
Dec 15 15:28:19,8167876|: START  |      Device discovery started for: 10.191.20.0
Dec 15 15:28:19,9261472|: INFO   |Discovery is active for: NET_10.191.20.0_24
Dec 15 15:28:20,1136208|: INFO   |Device discovered from NET_10.191.20.0_24 BaseModelName: "TASKalfa 250ci", ModelName: "TASKalfa 250ci", MoName: "TASKalfa 250ci"
Dec 15 15:28:20,3948312|: INFO   |Device discovered from NET_10.191.20.0_24 BaseModelName: "FS-C2626MFP", ModelName: "FS-C2626MFP", MoName: "FS-C2626MFP"
Dec 15 15:28:20,4260768|: INFO   |Device discovered from NET_10.191.20.0_24 BaseModelName: "FS-3640MFP", ModelName: "FS-3640MFP", MoName: "FS-3640MFP"
Dec 15 15:28:20,5198136|: INFO   |Device discovered from NET_10.191.20.0_24 BaseModelName: "TASKalfa 7550ci", ModelName: "TASKalfa 7550ci", MoName: "TASKalfa 7550ci"
Dec 15 15:28:20,6135504|: INFO   |Device discovered from NET_10.191.20.0_24 BaseModelName: "FS-C2626MFP", ModelName: "FS-C2626MFP", MoName: "FS-C2626MFP"
2011-12-15 15:28:19,785|  INFO | NetworkList - setStartDiscovery - Starting point
2011-12-15 15:28:19,785|  INFO | NetActionProvider - performAction - JYR
2011-12-15 15:28:19,785|  INFO | NetActionProvider - ATN_DISCOVERY_START
2011-12-15 15:28:19,785|  INFO | SNMPDiscovery - Starting discovery for NET_10.191.20.0_24.

Пожалуйста, внимательно посмотрите на их время.Оператор с 15: 28: 19,8167876 мс был впервые выведен до 15: 28: 19 785 мс

Dec 15 15:28:19,8167876|: INFO   |Web server call start_device_discovery() for: 10.191.20.0
2011-12-15 15:28:19,785|  INFO | NetworkList - setStartDiscovery - Starting point

Что я хотел бы сделать, так это каким-то образом попытаться синхронизировать эти 2 наблюдателя.Есть идеи?Спасибо вперед.

1 Ответ

0 голосов
/ 15 декабря 2011

Вы можете попытаться синхронизировать доступ к журналу.Для этого вам нужен простой объект для синхронизации, который доступен для всех FileSystemWatcher обработчиков событий.Для упрощения вы можете использовать объект логгера (но читайте раздел примечания здесь ).Получите блокировку , как только FileSystemWatcher получит уведомление :

private static void OnChanged(object source, FileSystemEventArgs e)
{
    lock(MyLogger)
    {
        MyLogger.Log("something changed");
    }
}

Убедитесь, что вы блокируете везде, где используете регистратор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...