我有一個文件,到數據保存在所有的時間.. 我有一個運行一次,每4秒 我的過程看起來像一個計時器: 文件x.txt是開放所有的時間。 4秒後我想要停止該進程並通過電子郵件發送此文件。 我想重複上述步驟。定時器和螺紋鎖
我的代碼:
var timer = new System.Timers.Timer(4000);
timer.Enabled = true;
timer.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) =>
{
wrtiteToFile.Suspend();
SendEmail();
wrtiteToFile.Resume();
};
static void SendEmail()
{
SmtpClient smtpClient = new SmtpClient();
NetworkCredential basicCredential =
new NetworkCredential("", "");
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("");
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Port = ;
smtpClient.Host = "";
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
smtpClient.EnableSsl = true;
message.From = fromAddress;
message.Subject = "";
//Set IsBodyHtml to true means you can send HTML email.
message.IsBodyHtml = true;
message.Body = "";
message.To.Add("");
message.Attachments.Add(new Attachment(Application.StartupPath + @"\log.txt"));
smtpClient.Send(message);
}
該進程無法訪問文件 'C:\ log.txt的',因爲它正由另一個進程使用。 這不起作用。我能做到這一點的最佳方式是什麼?我試過鎖定,但它不起作用。 我必須使用.net框架2.0
你是如何打開你的文件,並在你的sendemail函數什麼 – BugFinder
@Stefan如果是,它不是一個很好的。只是發送垃圾郵件的垃圾郵件可能會因爲垃圾郵件過濾器等而無法發送垃圾郵件。 – Jacobr365
我想,發送郵件的程序使用你的'x.txt'。請分享'SendEmail()' –