我有一个用于在晚上发送统计信息的用户界面。
用户界面可以将统计数据手动发送到分发组和个人,然后我也会安排发送'你设置一个计时器和一个计时器滴答,直到当前时间与计时器中设置的匹配。
当时间匹配时,这会调用:
Public Shared Sub ProcessDailyStats(ByVal Arguments As List(Of String))
DailyStats_BGW.WorkerReportsProgress = True
DailyStats_BGW.WorkerSupportsCancellation = True
AddHandler DailyStats_BGW.DoWork, AddressOf DailyStats_BGW_DoWork
AddHandler DailyStats_BGW.ProgressChanged, AddressOf DailyStats_BGW_ProgressChanged
AddHandler DailyStats_BGW.RunWorkerCompleted, AddressOf DailyStats_BGW_RunWorkerCompleted
DailyStats_BGW.RunWorkerAsync(Arguments)
End Sub
现在通过'按钮'在个人或分发组的MainForm上发送ReportProgress事件工作正常。
我使用ReportProgress事件更新一个小日志,当从定时器触发时,相同的子和后续的ReportProgress事件不会更新RTB。
请注意RTB属于一个类(MainForm),Timer和BackGroundWorker属于另一个类(DailyStats)。为什么在MainForm上按下按钮时这是有效的,但在DailyStats类中使用Timer失败。
仅供参考,Job正确完成,我收到了最终的电子邮件,这只是RichTextBox在处理过程中无法更新的问题。
如果您需要更多代码,请询问。
干杯