-1

重複の可能性:
Thread.Sleep c# を使用せずに電子メール メッセージの送信を遅らせる

そのため、アプリケーションの for ループ内で新しいスレッドを開始しようとしています。私はスレッドにまったく慣れていないので、情報が必要です。

この方法を使用してOutlook経由でメールを送信しています:

public void sendEMailThroughOUTLOOK(string recipient, string subject, string body)
    {

        try
        {

            // Create the Outlook application.
            Outlook.Application oApp = new Outlook.Application();
            // Create a new mail item.
            Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
            // Set HTMLBody. 
            //add the body of the email
            oMsg.Body = body;

            oMsg.Subject = subject;
            // Add a recipient.
            Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
            // Change the recipient in the next line if necessary.
            Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(recipient);
            oRecip.Resolve();
            // Send.
            oMsg.Send();
            // Clean up.
            oRecip = null;
            oRecips = null;
            oMsg = null;
            oApp = null;
        }//end of try block
        catch (Exception ex)
        {
        }//end of catch

        //end of Email Method
    }

foreach ループでは、反復ごとにメールを送信します。

ただし、これらのメールを遅らせる必要はありますが、UI スレッドをスリープ状態にしたくありません。

数時間前に質問し、いくつかの回答を得ましたが、頻繁に質問を確認することができませんでした.

私はこれを使用するなど、彼らの提案のいくつかを試しました:

Thread oThread = new Thread(new ThreadStart((sendEMailThroughOUTLOOK(recipient, subjectLine, finalbody)));

しかし、エラーが発生します。メソッド名を期待していると言っています...そして私はそこにメソッド名を持っています。私のメソッドの引数が原因ですか?

4

1 に答える 1

0

これを行うか、ParameterizedThreadStart を調べることもできます。

Thread oThread = new Thread(new ThreadStart(() => { sendEMailThroughOUTLOOK(recipient, subjectLine, finalbody); }));
于 2012-10-01T20:05:53.937 に答える