さて、私はしばらくそれをやっていて、スレッドだけを使うことにしました。シンタックスハイライトを作成していますが、通常使用されるファイルサイズでひどいパフォーマンスが得られ続けています。そこで、2つのフォームを作成しました。最初のフォームはプレーンテキストでファイルを表示し、クリックすると「openincolor」というボタンがあり、新しいスレッドを開始します。
private void button1_Click(object sender, EventArgs e)
{
ColoringThread colorer = new ColoringThread(this.m_bruteView.Text);
Thread theThread = new Thread(new ThreadStart(colorer.OpenColorWindow));
theThread.Start();
}
public class ColoringThread
{
string text;
public ColoringThread(string initText)
{
text = initText;
}
public void OpenColorWindow()
{
Form2 form2 = new Form2(text);
form2.ShowDialog();
}
};
このフォームは、x行の色付けが完了するたびにメッセージを送り返したいと思います。次に、それを取得して進行状況を把握し、ユーザーに表示します。
メッセージまたはイベント(...?それを行うことができます)を最初のフォームに送信して、他の進行状況を通知するにはどうすればよいですか?