我正在创建一个新的 *.csv 文件,创建后我想将此文件作为电子邮件的附件发送,但文件被锁定 10 - 15 秒。有什么方法可以等待文件被释放然后发送这个文件而不会出现任何异常:该进程无法访问该文件,因为它正在被另一个进程使用。
File.WriteAllText("test.csv", sb.ToString(),Encoding.UTF8);
SendMail();
private static void SendMail()
{
MailMessage mail = new MailMessage("from", "to");
SmtpClient client = new SmtpClient();
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = "host";
mail.Subject = "this is subject";
mail.Body = "this is body";
mail.Attachments.Add(new Attachment("test.csv"));
mail.IsBodyHtml = true;
client.Send(mail);
}
如果我等待 Thread.Sleep() 我可以成功发送电子邮件,但我不想使用它。我不知道文件操作完成的确切时间。它是一个控制台应用程序。有什么建议么?