C# 从用C编写的windows服务运行进程时出现内存问题#

C# 从用C编写的windows服务运行进程时出现内存问题#,c#,service,process,out-of-memory,C#,Service,Process,Out Of Memory,从用C#编写的windows服务运行进程时出现内存问题: 我尝试使用以下几行运行一些进程: for (int i = 0; i < runParamaters.Count; i++) { ProcessStartInfo pe = new ProcessStartInfo(runParamaters[i].command, runParamaters[i].parameters); pe.WorkingDire

从用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);
 }
for(int i=0;i
从命令行exe或winform exe运行此循环时,它工作正常。但从服务运行它(在它的“启动”功能上)——一些进程无法分配内存,所以失败了


知道我为什么以及如何修复它吗?

不知道您要运行什么样的程序,但我会尝试以下方法:

pe.CreateNoWindow = false;
pe.UseShellExecute = false;

问题是操作系统为服务分配的堆内存更少。解决方案是编辑密钥HKEY\U LOCAL\U MACHINE\System\CurrentControlSet\Control\Session Manager\Subsystem\Windows
使用regedit设置更多堆。非常感谢spodger。

进程可能会导致很多问题(内存也会出现问题)。也许你应该重新考虑使用线程。也。。。粘贴错误堆栈:)哦。。。我懂了。您要运行多少个进程?另外,Windows Scheduler(或Linux Cron)可能会解决您的问题。如果您能提供一个解决方案(这将包括所调用的确切进程),那就太棒了。
无法分配内存
冒着问一个愚蠢问题的风险,机器是否内存不足?看看这个-解决方案可能很有用。没有。UseShellExecute出现错误“错误路径”,CreateNoWindow无效。现在只是猜测,但您可能希望尝试修改windows服务配置(在服务中)上的一个设置。打开“服务”窗口,右键单击您的服务,选择“属性”,然后选择“登录”,选中“允许服务与桌面交互”复选框…并查看它是否有助于在那里更改什么?