写入日志,在计时器内,在线程内,从另一个线程写入

  • 本文关键字:线程 另一个 计时器 日志 c#
  • 更新时间 :
  • 英文 :


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

目前我通过给出一个url来启动线程,然后按一个按钮,这个按钮启动一个指向类的线程。

我的问题在这个类中,因为我在那里使用了一个计时器。

当前数据被一次性推入日志,但应该在设置时推入数据。

目前这是我的函数,绑定到我的计时器的tick事件:

    public void scanForImages(object s, ElapsedEventArgs e)
    {
        if (status != 1 && status != 4)
        {
            status = 1;
            int i = 0;
            while (status == 1)
            {
                main.updateLog(th.Name + ": Blaatn");
                i++;
                if (i > 50)
                {
                    status = 4;
                    t.Stop();
                    main.updateThreads("Aborting: " + th.Name, th);
                    th.Abort();
                }
            }
        }
        else
        {
            t.Stop();
        }
    }

它在我的文本框中返回输出,但它一次推送所有内容(所有th.Name + ": Blaatn"

updateLog:公共无效updateLog(字符串txt){

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

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

你不给。updatelog代码,所以我们可以正确回答所以…要么必须刷新该函数内的文件,要么必须初始化调度程序

Dispatcher.Invoke(DispatcherPriority.Normal,
                      new Action<string>(main.updateLog),
                      th.Name + ": Blaatn");  

最新更新