我有以下代码,我将attachment
对象传递给SendMessage
方法。问题是SendMessage
位于另一个thread
中,当SendMessage
尝试使用attachment
时,attachment
已被销毁,因为默认情况下将对象作为参考传递。什么是这个问题的最佳解决方案?
var attachment = new Attachment(fileStream, fileName);
new Thread(() => MailHelper.SendMessage(message.Mail.Headers.From.Address, "EmailConvertSuccess.txt", attachment)).Start();
答案 0 :(得分:2)
垃圾收集在线程之间起作用,因此不应该是问题。
您是否处置了源FileStream
(或将其包装在using
块中)?那可能是问题所在,因为当您尝试访问文件流时,文件流已经被处理掉了。
确切的异常消息有助于找出问题的确切位置。