イメージボードをスキャンして画像をダウンロードするアプリケーションの作成に取り組んでいます。もちろん、複数のボードを一度に削ることができるため、これはスレッド化する必要があります。基本的な機能はすでにできていますが、今は壁にぶつかっています。
現在、URLを指定してスレッドを開始し、ボタンを押すと、このボタンはクラスを指すスレッドを開始します。
そこでタイマーを使用しているため、私の問題はこのクラス内にあります。
現在、データは一度にログにプッシュされますが、設定されたとおりにデータをプッシュする必要があります。
現在、これは私のタイマーのティックイベントにバインドされている私の関数です:
public void scanForImages(object s, ElapsedEventArgs e)
{
if (status != 1 && status != 4)
{
status = 1;
int i = 0;
while (status == 1)
{
main.updateLog(th.Name + ": Blaat\n");
i++;
if (i > 50)
{
status = 4;
t.Stop();
main.updateThreads("Aborting: " + th.Name, th);
th.Abort();
}
}
}
else
{
t.Stop();
}
}
テキストボックスに出力を返していますが、すべてを一度にプッシュしています(すべてのth.Name + ": Blaat\n"
updateLog: public void updateLog(string txt) {
if (InvokeRequired)
{
Action action = () => textBox2.AppendText(txt);
textBox2.Invoke(action);
}
else
{
textBox2.AppendText(txt);
}
}
私は何を間違っていますか?(必要に応じて、より多くのコードを提供できます)