C # Apenas parte de uma solicitação ReadProcessMemory ou WriteProcessMemory foi concluída durante Process.Kill ()
Eu tenho pesquisado este assunto bastante extensivamente e não consigo encontrar uma resposta.
Eu sei que oOnly part of a ReadProcessMemory or WriteProcessMemory request was completed
exceção é lançada quando um processo de 32 bits tenta acessar um processo de 64 bits e o mesmo para uma modificação de 64 bits de um processo de 32 bits.
A solução para esse problema é alterar o destino da plataforma para "Qualquer CPU". Eu tentei isso e, infelizmente, isso não resolve o meu problema.
O próximo bloco de código é o que continua lançando a exceção. O programa que executa esse código é usado para abrir aplicativos em computadores remotos e mantém uma lista de todos os processos que o próprio programa abriu para que eu não precise percorrer todos os processos.
Process processToRemove = null;
lock (_runningProcesses)
{
foreach (Process p in _runningProcesses)
{
foreach (ProcessModule module in p.Modules)
{
string[] strs = text.Split('\\');
if (module.ModuleName.Equals(strs[strs.Length - 1]))
{
processToRemove = p;
break;
}
}
if (processToRemove != null)
{
break;
}
}
if (processToRemove != null)
{
processToRemove.Kill();
_runningProcesses.Remove(processToRemove);
}
}
Esses processos podem e provavelmente serão de 32 bits e 64 bits, misturados.
Existe alguma coisa que eu esteja fazendo que eu não deveria estar fazendo, ou há apenas uma maneira melhor de fazer tudo isso?