Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Может ли текущая директория быть разная для двух параллельных процессов / 4 сообщений из 4, страница 1 из 1
13.12.2012, 06:47
    #38076959
abort
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли текущая директория быть разная для двух параллельных процессов
Таймером запущаются несколько процессов. Для каждого процесса задается свой WorkingDirectory, т.к. запускаемая программа обращается по относительному пути к файлам в подпапках
Код: c#
1.
2.
3.
4.
5.
6.
            Process _process = new Process();
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = PROCESS_NAME;
            _process.StartInfo.CreateNoWindow = true;
            FileInfo FI = new FileInfo(PROCESS_NAME);
            startInfo.WorkingDirectory = FI.DirectoryName;


Стал замечать, что со временем некоторые процессы замирали, т.е. без какого либо продолжения. Возникло предположение что текущая директория не может быть разной в один и тот же момент для разных процессов. Или я не прав. Как выловить ошибку?
Если программы запускаются напрямую, то все нормально отрабатывают, а если через запускающую программу то возникают вышеперечисленные ошибки
...
Рейтинг: 0 / 0
13.12.2012, 08:42
    #38076991
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли текущая директория быть разная для двух параллельных процессов
abort,

может, откройте 2 проводника
...
Рейтинг: 0 / 0
13.12.2012, 11:50
    #38077283
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли текущая директория быть разная для двух параллельных процессов
abort,

да, может. Почему твой процесс "замирает" трудно сказать не зная что именно он делает. Подключись к нему отладчиком и посмотри чем он занят. Можно также посмотреть состояние процесса с помошью ProcessExplorer , чтобы посмотреть какой каталог процесс считает текущим.

Лично я бы не стал полагаться на текущий каталог, а передал бы рабочий каталог через командную строку, собирал полный путь с помощью Path.Combine и работал уже с ним.

Еще один момент - код запуска процесса у тебя странно выглядит. Свойства запуска меняешь, то в ProcessStartInfo, то в переменной _process. Может проблема где-то здесь кроется. Я бы переписал код так:
Код: c#
1.
2.
3.
4.
5.
6.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = PROCESS_NAME;
startInfo.CreateNoWindow = true;
startInfo.WorkingDirectory = Path.GetDirectoryName(PROCESS_NAME);
//...
Process process = Process.Start(startInfo);
...
Рейтинг: 0 / 0
14.12.2012, 05:49
    #38078807
abort
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Может ли текущая директория быть разная для двух параллельных процессов
bazile,

Ок спасибо за советы
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Может ли текущая директория быть разная для двух параллельных процессов / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]