Перенаправьте стандартный вывод эффективно в.NET

Вы не можете вернуть несколько компонентов одновременно одним вызовом connect, помните, что вы export default, и вы должны возвращать только одну функцию / компонент, помните, что connect возвращает только один компонент в время, так как вы можете сделать это, как

export default {
  ListProduct: connect(mapStateToProps)(ListProducts),
  AddProduct: connect(mapStateToProps)(AddProduct)
}

Так что при импорте компонентов вы можете сделать

import Components from ‘.../your/path’;
class MyView extends React.Component{
  render(){
    return <Components.ListProducts/>
  }
}
9
задан Vincent 14 November 2008 в 00:10
поделиться

2 ответа

Можно использовать событие OutputDataReceived для получения данных, поскольку это накачано к StdOut.

8
ответ дан 4 December 2019 в 08:02
поделиться

Лучшее решение, которое я нашел:

private void Redirect(StreamReader input, TextBox output)
{
    new Thread(a =>
    {
        var buffer = new char[1];
        while (input.Read(buffer, 0, 1) > 0)
        {
            output.Dispatcher.Invoke(new Action(delegate
            {
                output.Text += new string(buffer);
            }));
        };
    }).Start();
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    process = new Process
    {
        StartInfo = new ProcessStartInfo
        {
            CreateNoWindow = true,
            FileName = "php-cgi.exe",
            RedirectStandardOutput = true,
            UseShellExecute = false,
            WorkingDirectory = @"C:\Program Files\Application\php",
        }
    };
    if (process.Start())
    {
        Redirect(process.StandardOutput, textBox1);
    }
}
17
ответ дан 4 December 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: