private void OnNewJournalFile(object sender, FileSystemEventArgs e) { /* * This event can fire multiple times in a row. We need to make sure to read the file only after * the last event is fired to avoid running into a locked file */ delayedFileRead.CallMethod(() => SwitchToNewJournalFile(sender, e)); }
public static void Main(string[] args) { DelayedMethodCaller methodCaller = new DelayedMethodCaller(500); methodCaller.CallMethod(() => HelloWorld(123)); methodCaller.CallMethod(() => HelloWorld(123)); while (true) { ; } }
void RemoteDevice_StorageModified(object sender, EventArgs e) { _log.WriteLine($"({SerialNo}) Vault storage modified"); Task.Run(() => { dmc.CallMethod(async() => { if (_remoteDevice != null && PasswordManager != null) { var updateCounter = _remoteDevice.StorageUpdateCounter; var loadedUpdateCounter = PasswordManager.LoadedStorageUpdateCounter; var delta = loadedUpdateCounter - updateCounter; if (updateCounter > loadedUpdateCounter || delta > 100) { try { await LoadStorage(); } catch (Exception ex) { _log.WriteLine(ex); } } } }); }); }