void ThreadMethod() { var status = true; string message = null; try { using (var storage = new DataFeedStorage(m_storageLocation, StorageProvider.Ntfs, null, false)) { using (var writer = new StreamWriter(m_outputFile)) { if (m_period != null) { this.ExportBars(writer, storage); } else { this.ExportTicks(writer, storage); } } } } catch (Exception ex) { status = false; message = ex.ToString(); } var func = this.Finish; if (func != null) { var e = new FinishEventArgs(status, message); func(this, e); } }
void OnFinish(object sender, FinishEventArgs e) { if (this.InvokeRequired) { this.InvokeInPrimaryThread(this.OnFinish, sender, e); } else { if (!e.Status) { MessageBox.Show(e.Message, this.Text); } this.m_start.Enabled = true; this.m_stop.Enabled = false; this.m_open.Enabled = true; this.m_save.Enabled = true; this.m_dateFrom.Enabled = true; this.m_dateTo.Enabled = true; this.m_symbols.Enabled = true; this.m_contractSize.Enabled = true; this.m_removeDuplicateEntries.Enabled = true; this.exporter = null; this.m_progress.Value = 0; } }