KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This is a bit of a pain because I now don't have the code in front of me, but I'll try to explain. I have a simple C# application that kicks off a Ruby script (it does a couple of other things, so it generates a batch file and executes that). I am using the C# process object and I set the following redirectstandardoutput = true redirectstandarderror = true UseShellExecute = false CreateNoWindow = true (lovely bit of backwards logic there!) I then create two threads and poll ReadLine() for both the error and output streams, waiting for them both to finish before I call WaitForExit(). Now, no matter what I do my Ruby script fails to call a system("xcopy...") command when I redirect the output (no errors are generated it just doesn't copy). It also doesn't copy other files I ask it to copy. This happens if I direct both streams to a thread, one of them, only redirect one of them and just call ReadToEnd(). It only works correctly if I set redirectstandardoutput and redirectstandarderror to false. I'm at a total loss here. I thought maybe the output stream was being filled up, but I can't imagine why if I'm calling ReadLine (I need read line so I can parse each line and only present relevant ones to the end user). I also thought maybe calling dos commands from a threaded C# process might cause problems. Does anyone have any idea what might be going on here? I should say I'm on VS .net 2005, which I think is the .Net Framework 2.0.
Tags (comma-separated)
Save Edits
Cancel