public FormCharging() { InitializeComponent(); comboBoxFormatter.SelectedIndex = 0; comboBoxFormatter.Items.AddRange(formatterFactory.AvailableNames.ToArray()); currentFormatter = formatterFactory.DefaultFormatter; mobile = new ModernMobile(output); mobile.SMSMessenger.MessageAdded += (message, isAdded) => { if (!phonesSet.Contains(message.Number)) { phonesSet.Add(message.Number); Invoke(new Action(() => comboBoxPhone.Items.Add(message.Number))); } if (mobile.SMSMessenger.MessageHistory.Count > MAXIMUM_OUTPUT) { List <Message> temp = mobile.SMSMessenger.MessageHistory; temp.RemoveRange(0, messageHistoryCopy.Count - MAXIMUM_OUTPUT); messageHistoryCopy = temp; } else { messageHistoryCopy = mobile.SMSMessenger.MessageHistory; } try { Invoke(new Action(RefreshListView)); } catch (ObjectDisposedException) {} catch (InvalidOperationException) {} }; int notMainThreadSmsCount = 1; BackgroundWorkerFactoryMethod workerFactory = new BackgroundWorkerFactoryMethod(); manageableAction = new ManageableAction(new Action(() => { if (notMainThreadSmsCount == 1) { Thread.Sleep(300); } mobile.ReceiveSMS($"SMS #{notMainThreadSmsCount++} NOT from Main thread.", "700"); Thread.Sleep(1000); })); SMSBackgroundSender = workerFactory.CreateWorker(() => manageableAction.ThreadStart()); SMSBackgroundSender.Start(); UpdateChargeBar(); }
public FormMessageFiltering() { InitializeComponent(); comboBoxFormatter.SelectedIndex = 0; comboBoxFormatter.Items.AddRange(formatterFactory.AvailableNames.ToArray()); currentFormatter = formatterFactory.DefaultFormatter; mobile = new ModernMobile(output); mobile.SMSMessenger.MessageAdded += (message, isAdded) => { if (!phonesSet.Contains(message.Number)) { phonesSet.Add(message.Number); Invoke(new Action(() => comboBoxPhone.Items.Add(message.Number))); } if (mobile.SMSMessenger.MessageHistory.Count > MAXIMUM_OUTPUT) { List <Message> temp = mobile.SMSMessenger.MessageHistory; temp.RemoveRange(0, messageHistoryCopy.Count - MAXIMUM_OUTPUT); messageHistoryCopy = temp; } else { messageHistoryCopy = mobile.SMSMessenger.MessageHistory; } try { Invoke(new Action(RefreshListView)); } catch (ObjectDisposedException) { } }; new Thread(() => { int notMainThreadSmsCount = 1; System.Threading.Timer notMainThreadTimer = new System.Threading.Timer((sender) => { mobile.ReceiveSMS($"SMS #{notMainThreadSmsCount++} NOT from Main thread.", "700"); }, null, 500, 2000); }).Start(); }
public MessageFormatting() { InitializeComponent(); comboBoxFormatters.SelectedIndex = 0; foreach (string formatterName in formatterFactory.AvailableNames) { comboBoxFormatters.Items.Add(formatterName); } output = new TextBoxOutput(richTextBoxOutput); mobile = new ModernMobile(output); mobile.SMSProvider = new SMSProvider(); mobile.SMSProvider.SMSReciever += (message) => output.WriteLine(currentFormatter?.Invoke(message)); new Thread(() => { int notMainThreadSmsCount = 1; System.Threading.Timer notMainThreadTimer = new System.Threading.Timer((sender) => { mobile.ReceiveSMS($"SMS #{notMainThreadSmsCount++} NOT from Main thread."); }, null, 1000, 3000); }).Start(); }
private void timerInMainThread_Tick(object sender, System.EventArgs e) { mobile.ReceiveSMS($"SMS #{smsCount++} from Main thread."); }