小编use*_*008的帖子

我试图在c#中读取进程的输出但是我收到此消息"无法在进程流上混合同步和异步操作".

我正在使用xcopy编写备份程序,因为有很多大文件需要一段时间,所以我想显示进度.当我尝试使用StreamReader获取标准输出时,我在调试时会出现此错误消息."不能在流程流上混合同步和异步操作."

  public void backup_worker_DoWork(object sender, DoWorkEventArgs e)
    {
        int loop = 1;

        backup_worker.WorkerReportsProgress = true;

        Process xcopy = new Process();
        ProcessStartInfo startinfo = new ProcessStartInfo();
        startinfo.CreateNoWindow = true;
        startinfo.UseShellExecute = false;
        startinfo.RedirectStandardError = true;
        startinfo.RedirectStandardOutput = true;
        startinfo.FileName = Environment.CurrentDirectory + "\\xcopy.exe";
        startinfo.Arguments = '"' + source + '"' + " " + '"' + target + '"' + " " + "/s /e /y";
        xcopy.StartInfo.RedirectStandardOutput = true;
        xcopy.StartInfo = startinfo;

        xcopy.Start();
        xcopy.BeginErrorReadLine();
        xcopy.BeginOutputReadLine();

        StreamReader sr = xcopy.StandardOutput;

        while (loop …
Run Code Online (Sandbox Code Playgroud)

c# process backgroundworker

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

backgroundworker ×1

c# ×1

process ×1