2

我已经使用System.Diagnostics.Process该类创建了一个进程。这里是代码

Process p = new Process()
            {
                StartInfo = new ProcessStartInfo(@"some.exe")
            {
                CreateNoWindow = true,
                ErrorDialog = false,
                RedirectStandardError = true,
                RedirectStandardInput = true,
                RedirectStandardOutput = true,
                StandardErrorEncoding = Encoding.UTF8,
                StandardOutputEncoding = Encoding.UTF8,
                WindowStyle = ProcessWindowStyle.Hidden,
                UseShellExecute = false
            }

            };
            p.OutputDataReceived += (sender, r) =>
            {
                Console.WriteLine(r.Data);
            };
            p.Start();

            p.BeginOutputReadLine();
            int counter = 0;

            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);
            p.StandardInput.WriteLine("INPUT" + counter++);

            p.WaitForExit();
            Console.ReadKey();
        }

并在 some.exe 中创建 2 个应用程序域,它们实际上是控制台应用程序。使用AppDomain.ExecuteAsselbly("path to exe") 所以当我向进程提供输入时,第一个加载的 appdomain 正在接受所有输入,而第二个没有接受它。
有什么方法可以确定哪个 appdomain 应该接受输入?编辑:-
我突然意识到 AppDomain 一词在这里使用不正确。实际上我的意思是当前进程中的哪个线程应该接受输入。

4

0 回答 0