/// <summary>
        /// worker do work event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker wk = sender as BackgroundWorker;
            EmailTaskBuilder tb = e.Argument as EmailTaskBuilder;

            bool start = tb.InitializeTaskBuilder();

            if (!start)
            {
                e.Result = 0; // failed at initializing task
                return;
            }

            wk.ReportProgress(0, string.Format("{0}% ({1}/{2})", tb.Percentage, tb.Current, tb.Total));

            while (tb.HasNext)
            {
                tb.StepNext();
                wk.ReportProgress(tb.Percentage, string.Format("{0}% ({1}/{2})", tb.Percentage, tb.Current, tb.Total));
            }

            bool end = tb.Flush();

            if (!end)
            {
                e.Result = -1; // failed at ending task
                tb.RemoveTask();
                return;
            }

            wk.ReportProgress(100, string.Format("{0}% ({1}/{2})", tb.Percentage, tb.Current, tb.Total));
            e.Result = 1; // success
        }
Example #2
0
        private void sbSend_Click(object sender, EventArgs e)
        {
            //SendEmailState = SendEmail.Send(
            //    SenderAddress, ReceiverAddress,
            //    txtTitle.Text, htmlEditorMsg.PrintingRichEditControl.HtmlText,
            //    SmtpServerAddress, SmtpServerAccount, SmtpServerPassword);

            //if (SendEmailState) XtraMessageBox.Show("邮件发送成功!");
            //else XtraMessageBox.Show("邮件发送失败!");

            DateTime day  = dateEdit1.DateTime;
            DateTime time = timeEdit1.Time;

            EmailTaskBuilder taskbuilder = new EmailTaskBuilder();

            taskbuilder.Receivers            = this.Receivers;
            taskbuilder.TaskStartTime        = new DateTime(day.Year, day.Month, day.Day, time.Hour, time.Minute, time.Second);
            taskbuilder.EmailSubject         = txtTitle.Text;
            taskbuilder.EmailContentTemplate = htxContent.BodyHtml;
            taskbuilder.Shop = selectedShop;

            EmailTaskProcess process = new EmailTaskProcess();

            process.TaskBuilder = taskbuilder;
            if (DialogResult.OK == process.ShowDialog())
            {
                XtraMessageBox.Show("所有邮件已成功添加到邮件发送队列,等待稍候发送!");
            }
        }
        public EmailTaskProcess()
        {
            InitializeComponent();

            TaskBuilder = new EmailTaskBuilder();

            worker = new BackgroundWorker();
            worker.WorkerReportsProgress      = true;
            worker.WorkerSupportsCancellation = false;
            worker.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
            worker.ProgressChanged           += new ProgressChangedEventHandler(worker_ProgressChanged);
            worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        }