从用C#编写的Windows服务运行进程时的内存问题:我正在尝试使用下一行运行某些进程:
for (int i = 0; i < runParamaters.Count; i++)
{
ProcessStartInfo pe = new ProcessStartInfo(runParamaters[i].command, runParamaters[i].parameters);
pe.WorkingDirectory = runParamaters[i].folder;
System.Diagnostics.Process.Start(pe);
}
从命令行exe或winform exe运行此循环时,它工作正常。但是从服务运行它(在它的“启动”功能) - 一些进程无法分配内存并失败。
知道为什么以及如何解决它?
不确定你试图运行什么样的程序,但我试试这个:
pe.CreateNoWindow = false;
pe.UseShellExecute = false;
问题是操作系统为服务分配的堆内存较少。解决方案是使用regedit编辑密钥HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ SubSystems \ Windows以设置更多堆。非常感谢spodger。