Найти процесс, который жрет больше памяти - C#
Формулировка задачи:
При помощи
вроде что-то записывает, но что и как с этим работать я хз(((((((((((
CreateToolhelp32Snapshot
Немогу разобраться что передавать в параметрах + методичка для obj паскаля Буду рад любой помощи, но прошу помочь кодом Пока есть вот это:
Листинг программы
- [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- public static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processid);
- [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- static extern bool Process32First([In]IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
- [DllImport("kernel32", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
- static extern bool Process32Next([In]IntPtr hSnapshot, ref PROCESSENTRY32 lppe);
- IntPtr handle;
- static void Main(string[] args)
- {
- handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
- Console.ReadLine();
Решение задачи: «Найти процесс, который жрет больше памяти»
textual
Листинг программы
- static void Main()
- {
- long maxMemory = 0;
- IntPtr handleToSnapshot = IntPtr.Zero;
- string procName = string.Empty;
- try
- {
- PROCESSENTRY32 procEntry = new PROCESSENTRY32();
- procEntry.dwSize = (UInt32)Marshal.SizeOf(typeof(PROCESSENTRY32));
- handleToSnapshot = CreateToolhelp32Snapshot((uint)SnapshotFlags.Process, 0);
- if (Process32First(handleToSnapshot, ref procEntry))
- {
- do
- {
- Process pr = Process.GetProcessById((int)procEntry.th32ProcessID);
- // Console.WriteLine("Proc.name: {0} physical memory usage: {1}", pr.ProcessName, pr.WorkingSet64);
- if (pr.WorkingSet64 > maxMemory)
- {
- maxMemory = pr.WorkingSet64;
- procName = pr.ProcessName;
- }
- }while (Process32Next(handleToSnapshot, ref procEntry));
- Console.WriteLine("Proc.name: {0}, Physical memory usage: {1}", procName, maxMemory );
- }
- else
- {
- throw new ApplicationException(string.Format("Failed with win32 error code {0}", Marshal.GetLastWin32Error()));
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- CloseHandle(handleToSnapshot);
- }
- Console.ReadKey(true);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д