이 코드는 안전한 스레드입니까? attachment
개체에 문제가 있습니다. 참조에 의해 MailHelper
이 사용하는 새 스레드로 넘어 가고 때로는 attachment
개체가 스레드간에 혼합됩니다.참조 및 스레드 별 객체
public static void Start()
{
foreach (var message in messages)
{
//skip code
var fileName = httpWebResponse.GetResponseHeader("filename");
var fileStream = httpWebResponse.GetResponseStream();
var attachment = new Attachment(fileStream, fileName);
var thread = new Thread(() =>
{
var dictionary = new ListDictionary
{
{ "$Url$", message.Url }
};
MailHelper.SendMessage(dictionary,
message.Mail.Headers.From.Address,
"EmailConvertSuccess.txt",
attachment)
});
thread.Start();
}
}
주석과 마찬가지로 메시지 객체는 스레드간에 혼합됩니다. 첨부 파일 상태는 알 수 없으며 이상하지는 않지만 문제는 아닙니다. – CodingBarfield