async Task HandleClipboardUpdateWindowMessageAsync() { var timeSinceLastCopy = DateTime.UtcNow - lastCopy; if (timeSinceLastCopy.TotalSeconds > 1) { lastClipboardItemIdentifier = -1; } lastCopy = DateTime.UtcNow; await threadDeferrer.DeferAsync(100, () => { var clipboardItemIdentifier = (long)clipboardNativeApi.GetClipboardSequenceNumber(); if (shouldSkipNext) { logger.Information("Clipboard update message skipped."); lastClipboardItemIdentifier = clipboardItemIdentifier; shouldSkipNext = false; return; } logger.Information($"Clipboard update message received with sequence #{clipboardItemIdentifier}.", clipboardItemIdentifier); if (clipboardItemIdentifier == lastClipboardItemIdentifier) { logger.Verbose("Skipping clipboard update message because the sequence ID has not changed."); return; } lastClipboardItemIdentifier = clipboardItemIdentifier; TriggerDataCopiedEvent(); }); }
void HandleClipboardUpdateWindowMessage() { var clipboardItemIdentifier = clipboardNativeApi.GetClipboardSequenceNumber(); logger.Information( $"Clipboard update message received with sequence #{clipboardItemIdentifier}.", 1); if (clipboardItemIdentifier == lastClipboardItemIdentifier) { return; } lastClipboardItemIdentifier = clipboardItemIdentifier; TriggerDataCopiedEvent(); }