Created
May 22, 2024 13:10
-
-
Save openize-words-gists/a39fe003185d962e6cd98071ed19bc08 to your computer and use it in GitHub Desktop.
Multiple Word Documents Concurrent Updating in C#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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