private void OnRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { //Event handler for worker thread completed DoWork (this is on the main thread) try { //Notify user of open reminders if (e.Error == null) { RemindersDataset reminders = (RemindersDataset)e.Result; if (reminders != null && reminders.ReminderTable.Rows.Count > 0) { for (int i = 0; i < reminders.ReminderTable.Rows.Count; i++) { int id = reminders.ReminderTable[i].ID; string userID = reminders.ReminderTable[i].UserID; DataRow[] rows = this.mDialog.OpenReminders.ReminderTable.Select("ID=" + id + " AND UserID='" + userID + "'"); if (rows.Length == 0) { this.mDialog.OpenReminders.ReminderTable.ImportRow(reminders.ReminderTable[i]); } } this.mDialog.Show(); } } } catch { } }
//Interface public ReminderService() { //Constructor this.mReminders = new RemindersDataset(); this.mDialog = new dlgReminders(this); this.mTimer = new System.Windows.Forms.Timer(); this.mTimer.Interval = 15000; this.mTimer.Tick += new EventHandler(OnTick); this.mWorker = new BackgroundWorker(); this.mWorker.DoWork += new DoWorkEventHandler(OnDoWork); this.mWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(OnRunWorkerCompleted); }
private void OnDoWork(object sender, DoWorkEventArgs e) { //Event handler for background worker thread DoWork event; runs on background thread try { //Find reminders that are ready to be published; marshall to main thread RemindersDataset reminders = new RemindersDataset(); lock (this.mReminders) { DataRow[] rows = this.mReminders.ReminderTable.Select("Time<='" + DateTime.Now.ToString() + "'"); for (int i = 0; i < rows.Length; i++) { reminders.ReminderTable.ImportRow(rows[i]); } } e.Result = reminders; } catch { } }