在标题栏上按下鼠标会增加速度
本文关键字:增加 加速度 鼠标 标题栏 | 更新日期: 2023-09-27 18:05:22
我正在开发一个电子邮件应用程序,并在后台工作器中创建电子邮件。
后台工作器遍历所有联系人,每次它都会创建一封电子邮件并将其发送到outlook并发送后台工作人员。报告进度,用已发送的电子邮件信息更新表单。
这个工作相当完美,性能还可以。
但是,当我点击并按住表单的标题栏时(例如,如果有人要移动表单),电子邮件创建的速度几乎增加了一倍。
我试过调试,我失去了速度,如果UI的更新是在减慢它,但即使我不发送进度报告或显示进度形式,速度保持不变。
我不知道是什么导致了这个问题。欢迎提出任何建议。
这是我的backgroundworker的doWork方法
void bw_DoWork(object sender, DoWorkEventArgs e)
{
sentContacts = new List<Contact>();
double delay = GlobalVariables.delayBetweenBatch;
while (contactSentId < contacts.Count && !bw.CancellationPending)
{
if (lastSending < DateTime.Now.AddMinutes(delay))
{
for (int innerCounter = 0; innerCounter < GlobalVariables.emailsPerBatch; innerCounter++)
{
if (contactSentId < contacts.Count && !bw.CancellationPending)
{
Outlook.MailItem mailItem = createMailItem(contacts[contactSentId], Application, wordReader, false);
bool success = sendMail(contacts[contactSentId], mailItem);
bw.ReportProgress(contactSentId + 1, new ResultContact(success, contacts[contactSentId]));
sentContacts.Add(contacts[contactSentId]);
contactSentId++;
}
}
lastSending = DateTime.Now;
}
}
}
你对lastSending的检查是错误的,你想检查timenow是否大于lastSending+delay,以确保你不会发送钉子比延迟时间更频繁。