Могут ли объекты, созданные в статическом методе, быть перезаписаны, если метод вызывается в нескольких потоках? - PullRequest
0 голосов
/ 28 июня 2010

Если вы извлекаете переменную экземпляра в статическом методе на основе параметра, предоставленного статическому методу, возможно ли, что на переменную экземпляра можно наступить, если статический метод вызывается в одно и то же время разными вызывающими? Метод, который я вызываю, определен ниже, и мне интересно, может ли счет переменной экземпляра быть поврежден ... любые разъяснения будут с благодарностью!

public static void SendInvoiceReceipt(int invoiceId, string recipientEmailAddress)
{
    var invoice = ObjectFactory.GetInvoiceDAL().GetInvoiceByInvoiceId(invoiceId);

    var htmlBody = BuildHtmlInvoiceReceipt(invoice);
    var txtBody = BuildTextInvoiceReceipt(invoice);

    UtilitiesManager.Emails.EmailUtil.Send(SiteConfigUtilities.GetSMTPServer(),
            "referral@realtors.net", recipientEmailAddress, String.Empty,
            "Payment Receipt", htmlBody, txtBody);
}

1 Ответ

6 голосов
/ 28 июня 2010

invoice - локальная переменная (не «переменная экземпляра»). Он размещен в стеке, и каждый поток имеет свой собственный стек. Другой поток не может повлиять на него.

...