我有一个负责错误处理的课程。如果调用了析构函数,我想执行一个进程。但遗憾的是,这个过程不会开始。新进程调用带有一些参数的 exe,它应该发送一封电子邮件。为什么这不起作用?
~ErrorH()
{
if ((int)e > 0)
SendErrorMail();
}
private void SendErrorMail()
{
if (File.Exists("C:\\Program Files (x86)\\MailSend\\MailSend.exe"))
{
ProcessStartInfo mailsend = new ProcessStartInfo();
mailsend.FileName = "C:\\Program Files (x86)\\MailSend\\MailSend.exe";
mailsend.Arguments = "…";
Process.Start(mailsend);
}
}
例如,如果我SendErrorMail
在构造函数中执行该函数,一切正常。如果我查看调试器,似乎我到达了Process.Start(mailsend);
命令。什么地方出了错?我该如何解决这个问题?
编辑
好的,现在我已经使用了该IDisposable
方法。它工作正常,但是否正确使用它?
class ErrorH : IDisposable
{
private bool disposed = false;
...
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool desposing)
{
if(!this.disposed)
if ((int)e > 0)
SendErrorMail();
disposed = true;
}
在我使用的程序中:
using (Parameter p = new Parameter(args[0]))
{
...
}
类ErrorH
继承自Parameter
.
格雷茨