На данный момент я использую метод while (true) для обнаружения изменений в памяти. Проблема в том, что это убивает производительность приложений. У меня есть список из 30 указателей, которые нужно проверить как можно быстрее на наличие изменений, не жертвуя при этом огромной потерей производительности. У кого-нибудь есть идеи по этому поводу?
РЕДАКТИРОВАТЬ ** Идея состоит в том, чтобы обнаружить изменения в памяти, вызванные определенными приложениями во время запуска онлайн-игры-стрелялки. На самом деле это не античит, но в том же духе.
memScan = new Thread(ScanMem);
public static void ScanMem()
{
int i = addy.Length;
while (true)
{
Thread.Sleep(30000); //I do this to cut down on cpu usage
for (int j = 0; j < i; j++)
{
string[] values = addy[j].Split(new char[] { Convert.ToChar(",") });
//MessageBox.Show(values[2]);
try
{
if (Memory.Scanner.getIntFromMem(hwnd, (IntPtr)Convert.ToInt32(values[0], 16), 32).ToString() != values[1].ToString())
{
//Ok, it changed lets do our work
//work
if (Globals.Working)
return;
SomeFunction("Results: " + values[2].ToString(), "Memory");
Globals.Working = true;
}//end if
}//end try
catch { }
}//end for
}//end while
}//end void