C # Только часть запроса ReadProcessMemory или WriteProcessMemory была выполнена во время Process.Kill ()

Я исследовал эту проблему довольно широко и, похоже, не могу найти ответ.

Я знаю чтоOnly part of a ReadProcessMemory or WriteProcessMemory request was completed Исключение выдается, когда 32-разрядный процесс пытается получить доступ к 64-разрядному процессу и то же самое для 64-разрядного изменения 32-разрядного процесса.

Решение этой проблемы состоит в том, чтобы изменить цель платформы на «Любой ЦП». Я пробовал это, и, к сожалению, это не решает мою проблему.

Следующий блок кода - это то, что продолжает вызывать исключение. Программа, которая запускает этот код, используется для открытия приложений на удаленных компьютерах и хранит список всех процессов, которые сама программа открыла, так что мне не нужно перебирать все процессы.

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);
    }
}

Эти процессы могут и, скорее всего, будут 32-битными и 64-битными, смешанными вместе.

Есть ли что-то, что я делаю, что я не должен делать, или есть просто лучший способ сделать все это?

Ответы на вопрос(3)

Ваш ответ на вопрос