此方法在IIS 6或更高版本上运行的ASP.NET Web应用程序(.NET 4.5.2)中定义:
public string GetValueFromProcess()
{
string val = string.Empty;
try
{
System.Diagnostics.Process p = System.Diagnostics.Process.Start(GetMyExeFilePath());
p.WaitForExit();
val = mainp.StandardOutput.ReadToEnd();
}
catch (Exception) { }
return val;
}
这样的功能是否可以毫无问题地执行并发,还是用lock包裹它?
显然,有些参数应该传递给流程,但为了简单起见,我删除了该部分。
答案 0 :(得分:1)
该函数将阻止当前请求,等待“p.WaitForExit();”去完成。并发请求将产生多个进程。您还需要考虑IIS请求脚本超时设置,该设置将引发ThreadAbort异常。