I\'m running into the classic scenario where, when creating Word COM objects in .NET (via the Microsoft.Office.Interop.Word assembly), the WinWord process won\'t exit even t
Try calling GC.WaitForPendingFinalizers() and using Marshal.FinalReleaseComObject instead of Marshal.ReleaseComObject. This gets rid of the need to loop it.
Update your code to this and try it (the GC calls are in the beginning on purpose):
GC.Collect()
GC.WaitForPendingFinalizers()
oDoc.Close()
Marshal.FinalReleaseComObject(oDoc)
Marshal.FinalReleaseComObject(oDocuments)
oWord.Quit()
Marshal.FinalReleaseComObject(oWord)
You might also want to check out this related question discussing the issue for Excel.