powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Может ли текущая директория быть разная для двух параллельных процессов
4 сообщений из 4, страница 1 из 1
Может ли текущая директория быть разная для двух параллельных процессов
    #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
Может ли текущая директория быть разная для двух параллельных процессов
    #38076991
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abort,

может, откройте 2 проводника
...
Рейтинг: 0 / 0
Может ли текущая директория быть разная для двух параллельных процессов
    #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
Может ли текущая директория быть разная для двух параллельных процессов
    #38078807
abort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

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


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