トップ回答者
ReportProgressを使用しても、ProgressChangedが動かない

質問
-
Visual CS 2010 Expressを使って、フォームアプリケーションの開発を行っています。
現在、そのプロトタイプとなるフォームを制作しているのですが、ReportProgressメソッドを呼び出し、progressChangedイベントを発生させても、backgroundWorker1_ProgressChangedメソッドが動きません。
解決のため、アドバイスをお願いいたします。また、申し訳ありませんが、私はC#にあまり詳しくありません。説明に不明瞭な点がございましたら、遠慮なくご指摘をお願いいたします。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; namespace TCP_recever { public partial class Form1 : Form { private string states = ""; private string button1_Text = ""; private string data = ""; //現在使用せず private double delta = 0.0; private double theta = 0.0; private double low_beta = 0.0; private double high_beta = 0.0; private double low_alpha = 0.0; private double high_alpha = 0.0; private double low_gamma = 0.0; private double high_gamma = 0.0; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs ev) { } //--------------------------- // Method of button1_Click //--------------------------- private void button1_Click(object sender, EventArgs ev) { msgBox01.Text = "connecting..."; button1.Enabled = false; backgroundWorker1.RunWorkerAsync(); } //---------------------- // background process //---------------------- private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs ev) { BackgroundWorker worker = (BackgroundWorker)sender; //ポートとアドレスを取得 int port = int.Parse(portBox.Text); string adress = adressBox.Text; System.Net.Sockets.TcpClient tcp; System.Net.Sockets.NetworkStream ns; states += "connecting...\n"; try { tcp = new System.Net.Sockets.TcpClient(adress, port); ns = tcp.GetStream(); } catch(Exception e) { states += "Error in connection\n"; ev.Result = "Error in Connection"; MessageBox.Show(e.Message); return; } states += "---Message------\n"; button1_Text = "切断"; Byte[] bytes = new Byte[1024]; int resSize; while(true){ resSize = ns.Read(bytes,0,bytes.Length); if(resSize == 0){ MessageBox.Show("Error : No data\n"); break; } data = Encoding.GetEncoding(932).GetString(bytes); MessageBox.Show("try reportprogress\n"); worker.ReportProgress(0); System.Threading.Thread.Sleep(60); } tcp.Close(); } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs ev) { MessageBox.Show("Progress Changed\n"); msgBox01.Text += states; msgBox01.Text += data; msgBox01.Text += "\n"; button1.Text = button1_Text; } } }