【发布时间】:2011-02-07 23:12:06
【问题描述】:
我有一个奇怪的问题,我创建了控制台应用程序 App1,这个应用程序的唯一目的是获取参数 (val) 检查这个值是否大于零,如果是,然后使用 val--in 参数运行同一个应用程序 (App1)并关闭。
我从计划任务运行这个应用程序,我每隔一分钟运行一次。问题是,当我以 1000 作为参数运行此应用程序时,它会在两三分钟后挂起我的计算机(蓝屏)。对于像 10 这样的论点,一切正常。
我需要这个应用程序来测试不同机器上的内存管理问题。
我运行了以下代码:
static void Main( string[] args )
{
if ( args.Length > 0 )
{
int val = 0;
try
{
Int32.TryParse( args[ 0 ], out val );
}
catch ( Exception ex )
{ }
if ( val > 0 )
{
val--;
ProcessStartInfo psi = new ProcessStartInfo(System.Windows.Forms.Application.ExecutablePath, val.ToString() );
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start( psi );
}
System.Console.WriteLine( args[ 0 ] );
}
System.Console.WriteLine( "App" );
}
【问题讨论】:
-
尝试启动 1000 个进程(你的代码正在做什么)充其量会很慢。请评论您的期望,因为目前还不清楚什么不能按您想要的方式工作。
-
这是我的代码,仅此而已,我只想运行运行应用程序的应用程序,等等。当应用程序运行应用程序时,它应该退出。所以我得到了应用链。我在我的电脑上运行它并得到几次蓝屏,我想知道为什么。我查看了内存使用情况,没关系,处理器利用率为 100%,但事实并非如此。
-
为什么要启动 1000 个进程才能一无所获?这个应用程序应该做什么?此外,告诉我们您遇到“蓝屏”并不能提供太多信息 - 有数百种可能的蓝屏,告诉我们报告的实际错误代码会很有帮助。
-
我需要在另一台机器上测试内存问题。我注意到,当我退出.net 应用程序时,系统内存的某些部分总是丢失(使用的内存量正在增加),所以在工作几个小时后就没有可用的内存了。我想创建一个非常简单的应用程序并运行它几次,并检查这个问题是否发生在更简单的情况下。然后我在我的机器上运行它进行测试,偶然发现了描述的问题。我问是因为也许我忘了发布一些明显的东西,或者可能是 process.start 的一些普遍问题。
-
我试图从蓝屏获取错误消息,但它快速闪烁(奇怪,因为我已将窗口配置为在这种情况下等待我的操作)
标签: c#