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

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

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

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

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

Фрагмент кода для импорта файла:
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2012, 19:41
Ответы с готовыми решениями:

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

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

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

3
Эксперт .NET
 Аватар для kolorotur
17809 / 12960 / 3381
Регистрация: 17.09.2011
Сообщений: 21,246
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
 Аватар для kolorotur
17809 / 12960 / 3381
Регистрация: 17.09.2011
Сообщений: 21,246
22.01.2012, 22:55 4
Цитата Сообщение от Mam0nt Посмотреть сообщение
консольное приложение не принимает в имени файла пробелы.
Принимает, надо всего лишь имя файла в кавычки взять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2012, 22:55
Помогаю со студенческими работами здесь

Параллельная передача нескольких файлов
Передаю файл через сокеты(в потоке). Сервер: while(s_Connect1=accept(s_Listen,(SOCKADDR*)&amp;saddr,&amp;addrlen)) { ...

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

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

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Protobuf в Go и новый Opaque API
golander 15.03.2025
Распределенные системы опираются на эффективные протоколы обмена данными — о чем вы, скорее всего, прекрасно знаете, если работаете с микросервисной архитектурой. Protocol Buffers (Protobuf) от. . .
Преобразование строк в C++: std::from_chars от C++17 до C++26
NullReferenced 15.03.2025
Конвертация строк в числа — задача, с которой сталкивается практически каждый C++ разработчик. Несмотря на кажущуюся простоту, эта операция таит множество подводных камней и неочевидных последствий. . .
Управление памятью в Java и новые сборщики мусора
Javaican 15.03.2025
Эффективное управление памятью всегда было ахиллесовой пятой высоконагруженных Java-приложений. При разработке на Java мы обычно полагаемся на автоматическое управление памятью через сборщики мусора. . .
Angular или Svelte - что выбрать?
Reangularity 15.03.2025
Во фронтенд-разработке Angular и Svelte представляют собой два совершенно разных подхода к решению схожих задач. Один — полноценный, мощный монолит с корпоративной поддержкой, другой — компактный,. . .
Spring Cloud микросервисы: обнаружение и отслеживание
Javaican 15.03.2025
В разработке корпоративных приложений всё больше команд обращают внимание на микросервисную архитектуру. Но с этой архитектурой приходят и специфичные трудности: как сервисам находить друг друга в. . .
Запуск контейнера Docker в облаке
Mr. Docker 15.03.2025
Что такое Docker-контейнер? Если коротко — это легковесный, автономный пакет, содержащий всё необходимое для запуска приложения: код, зависимости, библиотеки и конфигурации. Когда мы говорим о. . .
Осваиваем Kubernetes: Подробная шпаргалка
Mr. Docker 15.03.2025
Kubernetes — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он был создан для решения проблем, с которыми сталкиваются. . .
Лучшие PHP REST API фреймворки
Jason-Webb 15.03.2025
Современные PHP REST API фреймворки предлагают большой набор функциональности: от автоматической валидации данных и управления маршрутизацией до генерации документации и интеграции с различными. . .
Многопоточность в Java с Project Loom: виртуальные или обычные потоки
Javaican 15.03.2025
Многопоточность всегда была одноим из основных элементов в разработке современного программного обеспечения. Она позволяет приложениям обрабатывать несколько задач одновременно, что критично для. . .
Что нового в Swift 6 и особенности миграции
mobDevWorks 15.03.2025
Swift 6 — это новый крупный релиз языка программирования от Apple, анонсированный на WWDC 2024. Если вы следили за эволюцией Swift, то наверняка заметили, что многие значимые возможности, которые. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru