在链中使用Process.Start会挂起我的电脑

时间:2011-02-07 23:12:06

标签: c#

我有奇怪的麻烦,我创建了控制台应用程序App1,这个应用程序的唯一目的是获取参数(val)检查此值是否大于零如果是,则运行相同的应用程序(App1)与val--在参数并关闭。

我从预定任务运行此应用程序,我每隔一分钟运行一次。问题是,当我以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" );
}

1 个答案:

答案 0 :(得分:1)

您究竟是如何确定可用内存的?您是否正在查看Windows任务管理器中“物理内存”框中的“免费”部分?

Windows Task Manager is not a memory profiling tool

如果是这样,请停止这样做。现在在我的机器上,该数字表示我有6 MB空闲时间。由于我总共有5 GB的RAM,只有少数Chrome和VS 2010运行,我严重怀疑我已经消耗了所有可用的RAM。

实际上,您不应该任务管理器进行内存分析。这回答both of your most recent questions。绝对没有内存泄漏,你不需要进行这种愚蠢的回归测试。