标签:file for top oba foreach csharp ace ble put
//定义内存的信息结构 [StructLayout(LayoutKind.Sequential)] public struct MEMORY_INFO { public uint dwLength; public uint dwMemoryLoad; public uint dwTotalPhys; public uint dwAvailPhys; public uint dwTotalPageFile; public uint dwAvailPageFile; public uint dwTotalVirtual; public uint dwAvailVirtual; } [DllImport("kernel32")] private static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
此方法在C#中调用时,调用之前声明的变量会被释放掉,放在其他变量使用后调用,具体原因空了找
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { timer.Stop(); i++; MEMORY_INFO MemInfo = new MEMORY_INFO(); GlobalMemoryStatus(ref MemInfo); List<HardDriver> hardDrivers = new List<HardDriver>(); DriveInfo[] drives = DriveInfo.GetDrives().Where(a => a.DriveType == DriveType.Fixed).ToArray(); foreach (var item in drives) { hardDrivers.Add(new HardDriver() { name = item.Name, cap_all = (1.0 * item.TotalSize / 1024.0 / 1024.0 / 1024.0).ToString() + "GB", cap_avi = (1.0 * item.AvailableFreeSpace / 1024.0 / 1024.0 / 1024.0).ToString() + "GB", }); } var cpt = new ComputerLog() { server_name = server_name, }; cpt.cpu = 0; cpt.net_in = ""; cpt.net_out = ""; cpt.drives = hardDrivers.ToArray(); cpt.mem = MemInfo.dwMemoryLoad.ToString() + "%"; cpt.mem_avi = ConvertBytes(MemInfo.dwTotalPageFile.ToString(), 3).ToString() + "GB"; Console.Clear(); //Console.WriteLine($"{i.ToString()} cpt.mem:{cpt.mem} cpt.mem_avi:{cpt.mem_avi}"); Console.WriteLine(i.ToString() + "/r/n" + JsonConvert.SerializeObject(cpt)); //Monitor.logComputer(cpt); timer.Start(); }
标签:file for top oba foreach csharp ace ble put
原文地址:https://www.cnblogs.com/zwz418/p/10529433.html