Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save openize-words-gists/a39fe003185d962e6cd98071ed19bc08 to your computer and use it in GitHub Desktop.
Save openize-words-gists/a39fe003185d962e6cd98071ed19bc08 to your computer and use it in GitHub Desktop.
Multiple Word Documents Concurrent Updating in C#
// Concurrently updating three documents using <a href="https://www.nuget.org/packages/Openize.Words">Openize.Words</a>
var task1 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc1.docx", "doc1_Threaded.docx"));
var task2 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc2.docx", "doc2_Threaded.docx"));
var task3 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc3.docx", "doc3_Threaded.docx"));
// Wait for all tasks to complete
System.Threading.Tasks.Task.WaitAll(task1, task2, task3);
Console.WriteLine("All tasks completed.");
static void ManipulateDocument(string inputFileName, string outputFileName)
{
var doc = new Openize.Words.Document(inputFileName);
var paragraph = new Openize.Words.IElements.Paragraph();
paragraph.AddRun(new Openize.Words.IElements.Run
{
Text = $"This is the paragraph appended to {inputFileName}"
});
var body = new Openize.Words.Body(doc);
body.AppendChild(paragraph);
doc.Save(outputFileName);
Console.WriteLine($"Task completed for {inputFileName}");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment