C# 如何从窗体前面的backgroundWorker获取流程的每个状态

C# 如何从窗体前面的backgroundWorker获取流程的每个状态,c#,winforms,C#,Winforms,我有一个简单的基于Windows的应用程序。我用BackgroundWorker一个接一个地发送邮件。 以下是DoWork事件处理程序代码 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { MailsSample Mails = e.Argument as MailsSample; string readings = "To : " + Mails.To_EmailsID + "-

我有一个简单的基于Windows的应用程序。我用
BackgroundWorker
一个接一个地发送邮件。 以下是
DoWork
事件处理程序代码

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    MailsSample Mails = e.Argument as MailsSample;
    string readings = "To : " + Mails.To_EmailsID + "- ";

    char[] delimiterChars = { ',' };
    string[] Emails = Mails.To_EmailsID.Split(delimiterChars);

    for (int i = 0; i < Emails.Length; i++)
    {
        try
        {

            SmtpClient smtp = new SmtpClient(Mails.SMTP, Mails.PORT);
            MailMessage msg = new MailMessage(Mails.From_Email, Emails[i], Mails.subject, Mails.body);
            string mto = null;
            smtp.UseDefaultCredentials = true;
            smtp.Credentials = new NetworkCredential(Mails.From_Email, Mails.password);
            smtp.EnableSsl = true;

            msg.IsBodyHtml = true;
            msg.Subject = Mails.subject;

            //if (textBox1.Text != "")
            //{
            //    Attachment at = new Attachment(textBox1.Text);
            //    msg.Attachments.Add(at);
            //}


            msg.Body = Mails.body;
            mto = Emails[i];
            msg.IsBodyHtml = true;
            smtp.Send(msg);


            readings += "Sent Successfully.";
        }
        catch (Exception ex)
        {
            readings += "Error : " + ex.Message;
        }
        //Mails.t.AppendText ( Environment.NewLine +readings);
    }
    e.Result = readings;
}
private void backgroundWorker1\u DoWork(对象发送方,DoWorkEventArgs e)
{
MailsSample Mails=e.参数为MailsSample;
string readings=“To:”+Mails.To_EmailsID+“-”;
char[]delimiterChars={',};
字符串[]Emails=Mails.To_EmailsID.Split(delimiterChars);
对于(int i=0;i
这里是for循环,我想从for循环中获取每个状态,它存储在“readings”变量中。我想一个接一个地从任何文本框中查看前面的单个状态(读数)。 在
BackgroundWorker
中是否可能

我得到了答案

(sender as BackgroundWorker).ReportProgress((int)(100.0 / totalSteps * i), null);

  void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {

        progressBar1.Value =(int) e.ProgressPercentage;
    }

已为此创建BackgroundWorker.ProgressChanged事件。