0

我正在编写一个应用程序来扫描图像板上的图像,然后下载它们。当然,这必须是螺纹,因为可以一次刮掉多个板。我已经完成了基本的功能,但现在我正在碰壁。

目前我通过给出一个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"

更新日志:公共无效更新日志(字符串 txt){

        if (InvokeRequired) 
        { 
            Action action = () => textBox2.AppendText(txt); 
            textBox2.Invoke(action); 
        } 
        else 
        { 
            textBox2.AppendText(txt); 
        } 

    }

我究竟做错了什么?(如果需要,可以提供更多代码)

4

1 回答 1

0

您没有提供 .updatelog 代码,因此我们可以正确回答......您必须刷新该函数内的文件,或者您必须启动调度程序

Dispatcher.Invoke(DispatcherPriority.Normal,
                      new Action<string>(main.updateLog),
                      th.Name + ": Blaat\n");  
于 2013-03-31T08:32:51.617 回答