public static void CheckAppendText(this FlowDocument fDoc, Paragraph msg, bool waitUntilReturn = false) { Action append = () => { fDoc.Blocks.Add(msg); }; if (fDoc.CheckAccess()) { append(); } else if (waitUntilReturn) { fDoc.Dispatcher.Invoke(append); } else { fDoc.Dispatcher.BeginInvoke(append); } }