protected virtual void start_emerge(object sender, System.EventArgs e) { ProcessStartInfo psi = new ProcessStartInfo(); psi.RedirectStandardOutput = true; psi.UseShellExecute = false; psi.FileName = "/usr/bin/emerge"; if(portage.selected_ebuild.IndexOf("/") !=-1) psi.Arguments = portage.selected_ebuild; else if(portage.selected_ebuild == "--sync") psi.Arguments = "--sync"; else psi.Arguments = portage.selected_category + "/" + portage.selected_ebuild; emerge_dialog = new emerge(); emerge_dialog.Show(); proc = Process.Start(psi); proc.OutputDataReceived += new DataReceivedEventHandler(update_emerge_textview); Thread.Sleep(3000); Console.WriteLine(proc.HasExited.ToString()); proc.BeginOutputReadLine(); } private void update_emerge_textview(object sender, DataReceivedEventArgs e){ Console.WriteLine(e.Data); }