0 / 0 / 0
Регистрация: 21.01.2012
Сообщений: 3
1

Параллельная обработка нескольких файлов в потоках, обрабатывается только последний

21.01.2012, 19:41. Показов 1741. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

У меня следующая задача. Мне необходимо конвертировать бинарные файлы в нормальный с помощью внешней программы, запускаемой с атрибутами. Для этого я пытаюсь применить потоки. Когда работаю с одним файлом, то все нормально. Но когда пользователь выбирает несколько файлов, то конвертируется только последний. Подскажите, пожалуйста, решение этой задачи.

Фрагмент кода для импорта файла:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        private void преобразоватьrxpВpnrToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog2.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < openFileDialog2.FileNames.Length; i++)
                {
                    string filename = openFileDialog2.FileNames[i];
                    Thread th = new Thread(new ParameterizedThreadStart(convert));
                    th.Start(filename);
                }
            }
        }
Метод convert выполняет непосредственно конвертацию файла.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2012, 19:41
Ответы с готовыми решениями:

Параллельная обработка очереди файлов
Добрый день! Подскажите пожалуйста, каким образом лучше решить следующую задачу: Имеется...

Обработка множества файлов в параллельных потоках
День добрый, уважаемые форумчане. Прошу помочь с моим камнем преткновения &quot;Потоками&quot;. Имеется...

Из нескольких файлов javascript работает только последний
Вот такая ситуация: &lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;...

Параллельная передача нескольких файлов
Передаю файл через сокеты(в потоке). Сервер: ...

3
Эксперт .NET
17437 / 12829 / 3361
Регистрация: 17.09.2011
Сообщений: 21,107
22.01.2012, 00:28 2
С приведенным кодом все в порядке.
Смотрите метод convert.
0
0 / 0 / 0
Регистрация: 21.01.2012
Сообщений: 3
22.01.2012, 20:29  [ТС] 3
В методе convert ничего особенного вроде и нет...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        void convert(object file)
        { 
                string filename = file as string;
                string[] temp = filename.Split('\\');
                string path = "";
                for (int i = 0; i < temp.Length - 1; i++)
                {
                    path = path + temp[i] + "\\";
                }
                string scanname = temp[temp.Length - 1].Split('.')[0];
                showmess("Выполняентся конвертация файла " + temp[temp.Length - 1] + "...\n");
                string rxpget = AppDomain.CurrentDomain.BaseDirectory + "rxpget.exe";
                System.Diagnostics.Process proc = new System.Diagnostics.Process();
                proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                proc.StartInfo.FileName = rxpget;
                string output = path + scanname + ".tmp";
                string arguments = "-F %r%t%p%a -o " + output + " " + filename;
                proc.StartInfo.Arguments = arguments;
                proc.Start();
                proc.WaitForExit();
                showmess("Временный файл для скана " + temp[temp.Length - 1].ToString() + " создан...\n");
            
        }
Добавлено через 10 часов 9 минут
Оказалось, что все просто. Код правильный, просто консольное приложение не принимает в имени файла пробелы.
0
Эксперт .NET
17437 / 12829 / 3361
Регистрация: 17.09.2011
Сообщений: 21,107
22.01.2012, 22:55 4
Цитата Сообщение от Mam0nt Посмотреть сообщение
консольное приложение не принимает в имени файла пробелы.
Принимает, надо всего лишь имя файла в кавычки взять.
0
22.01.2012, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2012, 22:55
Помогаю со студенческими работами здесь

Параллельная обработка файлов
Здравствуйте. Подскажите пожалуйста как на с++ реализовать обработку файлов параллельно в несколько...

Параллельная обработка файлов
Не понимаю как организовать параллельную обработку файлов в данной программе. Смысл в том что есть...

После создания нескольких PictureBox-ов, удаляется только последний созданный
Такая проблема: Когда я создал несколько PictureBox'в, удаляется только последний созданный. Как...

Ошибка в программе. Запоминается только последний список файлов
Пытаюсь написать простую программу, которая перебирает папки и ищет файлы, полный путь которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru