Как я могу запустить процесс, используя поток с C#?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу запустить процесс, используя поток с C#?

Сообщение Anonymous »

Проблема < /strong>:

Поток отброшен, когда начинает процесс, вызывая исключение.

Как начать процесс из ветки. Я пытаюсь преобразовать много файлов, а затем добавить их результаты в файл. Есть дальнейшая обработка, которая должна быть сделана в файле состояния позже.

Код: Выделить всё

foreach (Preset pr in listOfPreset)
{
ConvertRipper cRipper = new ConvertRipper(pr);
ThreadStart job = (new ThreadStart(()=> cRipper.Ripper()));
Thread th = new Thread(job);
th.Start();
}

public void Ripper()
{
//create the folders before converting
if (!Directory.Exists(preset.OutputFilePath))
Directory.CreateDirectory(preset.OutputFilePath);

Document document = CreateDocument(preset);
ProcessResult pr = v3Engine.Convert(Const.IMAGEMAGICK, v3Engine.ConvertImages(document));

if (pr.ExitCode == 0)
{
//write status to a file the xml status
}
}
Теперь где -то внутри метода Ripper у меня есть процесс, который начинается, я в основном вызываю Windows Exe, чтобы преобразовать некоторые файлы
Метод конвертировать [/b]
Process proc = new Process();
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;

proc.StartInfo.Arguments = arguments;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

proc.ErrorDataReceived += (sender, args) => error.Append(args.Data);
proc.OutputDataReceived += (sender, args) => output.Append(args.Data);

proc.Start(); *loc1*

proc.BeginOutputReadLine();
proc.BeginErrorReadLine();
proc.WaitForExit();

ProcessResult pr = new ProcessResult
{
StandardOutput = output.ToString(),
ErrorOutput = error.ToString(),
ExitCode = proc.ExitCode
};

proc.Close();

return pr;`
< /code>
The Stack Trace: < /p>

"at system.diagnostics.processstartinfo.set_redirectstandarderror (boolean
value) \ r r \ n at inturetrater.AbStractCONTOR.CONVER />C:\Sersers\dev\source\Repos\converstion\ converstion\ converter\bstractconvertor.cs:line
54 "< /p>
< /blockquote>
Состояние исключения: < /em>*< /p>

onpable o anpecization, потому что Apportize - это. /> Настоящий кадр находится поверх стека вызовов. < /p>
< /blockquote>
После завершения моего процесса. Я хотел бы написать статус процесса в файл. < /P>
В примере я не понимаю, как он вписывается в мою ситуацию. Потому что я уже использовал это на методе Потрошитель, который косвенно размещает процесс.>

Подробнее здесь: https://stackoverflow.com/questions/530 ... ead-with-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»