流写入滞后于我的GUI

时间:2010-05-16 12:05:56

标签: c# multithreading streaming

我有一个线程从队列中取出数据并将其写入另一个应用程序的STDIN。我正在使用Stream,但是使用.Write甚至.BeginWrite,当我向第二个应用程序发送1mb块时,我的GUI会延迟~1秒。为什么?我的回调是这样的:

    void Progress(object sender, ProgressArgs e) {
        if (this.InvokeRequired) {
            this.BeginInvoke(new MethodInvoker(delegate() { Progress(sender, e); }));
            return;
        }

        progressBar1.Value = (int) e.PercentDone;
    }

1 个答案:

答案 0 :(得分:0)

我会说,你经常调用这些回调,以便用BeginInvoke消息阻塞你的消息队列。尝试保存上次收到的百分比值,并仅在新的百分比与上一个不同时调用BeginInvoke