9

.NET プログラムから php-cgi.exe を呼び出そうとしています。RedirectStandardOutput を使用して出力をストリームとして戻しますが、全体が非常に遅くなります。

どうすればそれをより速くできるかについて何か考えがありますか? 他のテクニックは?

    Dim oCGI As ProcessStartInfo = New ProcessStartInfo()
    oCGI.WorkingDirectory = "C:\Program Files\Application\php"
    oCGI.FileName = "php-cgi.exe"
    oCGI.RedirectStandardOutput = True
    oCGI.RedirectStandardInput = True
    oCGI.UseShellExecute = False
    oCGI.CreateNoWindow = True

    Dim oProcess As Process = New Process()

    oProcess.StartInfo = oCGI
    oProcess.Start()

    oProcess.StandardOutput.ReadToEnd()
4

3 に答える 3

8

OutputDataReceived イベントを使用して、 StdOut に送り出されたデータを受け取ることができます。

于 2008-10-02T21:56:19.047 に答える
2

この問題は、php.ini の構成が正しくないことが原因です。私は同じ問題を抱えていて、Windows インストーラーをhttp://windows.php.net/download/からダウンロードしました。

その後、不要な拡張機能をコメントアウトすると、変換プロセスは Speedy Gonzales のようになり、1 秒あたり 20 php の変換が行われます。

「oProcess.StandardOutput.ReadToEnd()」を安全に使用できます。スレッドソリューションを使用するのと同じくらい読みやすく、ほぼ同じ速さです。スレッド ソリューションを文字列と組み合わせて使用​​するには、イベントなどを導入する必要があります。

乾杯

于 2010-12-14T19:02:45.277 に答える