Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.IO;
- namespace sampleBackgroundWorker
- {
- public partial class Form1 : Form
- {
- private BackgroundWorker worker = new BackgroundWorker();
- private DataTable data = new DataTable();
- private delegate void DelegateMethod(object[] args);
- private StreamWriter writer;
- public Form1()
- {
- InitializeComponent();
- worker.WorkerReportsProgress = true;
- worker.DoWork += new DoWorkEventHandler(worker_DoWork);
- worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
- worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
- saveFileDialog1.Filter = "Log Files|*.log|All Files|*.*";
- if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- writer = new StreamWriter(File.Open(saveFileDialog1.FileName, FileMode.Append));
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- openFileDialog1.Filter = "DAT Files|*.dat|All Files|*.*";
- if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- worker.RunWorkerAsync(openFileDialog1.FileName);
- }
- }
- void worker_DoWork(object sender, DoWorkEventArgs e)
- {
- try
- {
- BinaryReader reader = new BinaryReader(File.Open(e.Argument.ToString(), FileMode.Open));
- setupProgressBar(new object[] { (int)reader.BaseStream.Length });
- int columnCount = reader.ReadInt32();
- data.Columns.Add("Date Time");
- for (int i = 0; i < columnCount; i++)
- {
- data.Columns.Add(new string(reader.ReadChars(reader.ReadInt32())));
- worker.ReportProgress((int)reader.BaseStream.Position);
- }
- bool eof = false;
- while (!eof)
- {
- try
- {
- List<object> RowData = new List<object>();
- RowData.Add(reader.ReadInt32());
- for (int i = 0; i < columnCount; i++)
- {
- RowData.Add(reader.ReadSingle().ToString());
- worker.ReportProgress((int)reader.BaseStream.Position);
- }
- data.Rows.Add(RowData.ToArray());
- worker.ReportProgress((int)reader.BaseStream.Position);
- }
- catch (Exception ex)
- {
- eof = true;
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- Log("Progress Entered");
- progressBar1.Value = e.ProgressPercentage;
- Log(String.Format("Progress Changed to {0}", e.ProgressPercentage.ToString()));
- }
- void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- Log("Complete Entered");
- Application.DoEvents();
- Log("Events Done");
- MessageBox.Show("Complete!");
- Log("Message Shown");
- }
- private void setupProgressBar(object[] args)
- {
- try
- {
- if (this.InvokeRequired)
- {
- DelegateMethod delegateMethod = new DelegateMethod(setupProgressBar);
- this.Invoke(delegateMethod, new object[] { args });
- }
- else
- {
- progressBar1.Maximum = (int)args[0];
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- void Log(string message)
- {
- writer.WriteLine(String.Format("{0} - {1}", DateTime.Now.ToString(), message));
- writer.Flush();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement