控制台应用程序进程被调用两次
本文关键字:两次 调用 应用程序 进程 控制台 | 更新日期: 2023-09-27 18:15:48
我正在从Web表单调用控制台应用程序,它会发送电子邮件。在控制台代码的最后一个块中,发送一封带有成功电子邮件计数的确认电子邮件。
在运行时,生成两个确认邮件而不是一个;第一个总是有0个电子邮件计数,第二个有实际计数。
下面是Web表单中的调用代码:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
Process process = Process.Start(info.FileName, arguments);
Process.Start(info);
我做错了什么?
您遇到的问题是您调用Process.Start
两次;一次使用info
对象(但不带参数),下一次使用文件名和参数overload。
你有两种方法来启动一个进程;你应该选择一个并坚持使用它:
ProcessStartInfo info = new ProcessStartInfo();
string arguments = String.Format(@"""{0}"" ""{1}""",
message.Subject.Replace(@"""", @""""""),
message.Body.Replace(@"""", @""""""));
info.FileName = MAILER_FILEPATH;
info.Arguments = arguments;
Process.Start(info);
ProcessStartInfo
包含一个名为Arguments
的属性,您可以为其添加参数;Process.Start
的重载只取ProcessStartInfo
对象。这就是我上面描述的方法。