У меня есть приложение vb.net, которое открывает документ word 2016 один за другим и использует для него приведенный ниже код
Public oWA As Microsoft.Office.Interop.Word.Application
Public oDoc As Microsoft.Office.Interop.Word.Document
oWA = New Microsoft.Office.Interop.Word.Application
--below code line opens multiple word document one by one
oDoc = oWA.Documents.Open(fileName, objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing, objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing, objMissing, objMissing, objMissing)
Проблема в том, что иногда приложение зависает и перестает обрабатывать текстовые файлы.Затем я увидел два экземпляра Winword.exe в диспетчере задач -> Процесс.Когда я убиваю тот, у кого меньше памяти, приложение запускается автоматически.Как эти два экземпляра генерируются.Могу ли я предотвратить это?Для решения этой проблемы я создал функцию для уничтожения экземпляра winword.exe, но он не работает.
Private Function KillMultipleWord()
Dim currentProcess As Process()
currentProcess = System.Diagnostics.Process.GetProcessesByName("winword")
If currentProcess.Length > 1 Then
Dim totalBytesOfMemoryUsed As Long = 0
Dim cmptotalBytesOfMemoryUsed As Long = 0
Dim cmpProc As System.Diagnostics.Process = Nothing
For Each proc As System.Diagnostics.Process In currentProcess
totalBytesOfMemoryUsed = proc.WorkingSet64
If cmptotalBytesOfMemoryUsed < totalBytesOfMemoryUsed Then
If cmpProc IsNot Nothing Then
cmpProc.Kill()
End If
cmpProc = proc
cmptotalBytesOfMemoryUsed = totalBytesOfMemoryUsed
Else
proc.Kill()
End If
Next
cmpProc = Nothing
End If
KillMultipleWord = Nothing
End Function