Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2018, 09:08   #1
Koldun90
Пользователь
 
Регистрация: 16.05.2014
Сообщений: 12
По умолчанию Запуск Process Операция асинхронного чтения для потока уже запущена

Здравствуйте Программа такая(С++ WINFORMS) есть кнопка button и есть textbox
при нажатии на кнопку выполняется вызов ipconfig , читается вывод который попадает в text box.

Проблема в следующем запускаю программу. Нажимаю кнопку. вывод ip config приходит.
Нажимаю второй раз кнопку вывод не приходит и пишется "Операция асинхронного чтения для потока уже запущена"
(Второй и каждый последующий разы так)
Вот вопрос как этого избежать?

Код:
//клик по кнопке
private: System::Void sendingfilesandfolders(System::Object^  sender, System::EventArgs^  e)
    { 
        
        send->StartInfo->FileName = "ipconfig";
        send->StartInfo->UseShellExecute = false;
        send->StartInfo->RedirectStandardOutput = true;
        send->StartInfo->CreateNoWindow = true;
        send->Start();
        send->BeginOutputReadLine();
}
 
//Обработчик прихода данных на стандартный вывод
private: System::Void readdataprocess(System::Object^  sender, System::Diagnostics::DataReceivedEventArgs^  e)
{
    if (e->Data!=nullptr)
        textBox1->AppendText(e->Data);
    
}
Изображения
Тип файла: png potokerrroo.png (17.4 Кб, 75 просмотров)

Последний раз редактировалось Koldun90; 28.07.2018 в 09:14.
Koldun90 вне форума Ответить с цитированием
Старый 28.07.2018, 09:29   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Создайте новый send объект.
waleri вне форума Ответить с цитированием
Старый 28.07.2018, 09:58   #3
Koldun90
Пользователь
 
Регистрация: 16.05.2014
Сообщений: 12
По умолчанию

send-- это у меня элемент process который я добавлял из панели элементов
Koldun90 вне форума Ответить с цитированием
Старый 28.07.2018, 10:04   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Просто создайте новый объект через gcnew или как там в С++ CLR. Тут совсем не нужен дизайнер.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.07.2018, 10:07   #5
Koldun90
Пользователь
 
Регистрация: 16.05.2014
Сообщений: 12
По умолчанию

я понял попробую
Koldun90 вне форума Ответить с цитированием
Старый 28.07.2018, 10:22   #6
Koldun90
Пользователь
 
Регистрация: 16.05.2014
Сообщений: 12
По умолчанию

изменил код на такой

Код:
//клик по кнопке
private: System::Void sendingfilesandfolders(System::Object^  sender, System::EventArgs^  e)
{ 
        System::Diagnostics::Process^ pr=gcnew System::Diagnostics::Process();
		pr->OutputDataReceived += gcnew System::Diagnostics::DataReceivedEventHandler(this, &MyForm::readdataprocess);
		pr->StartInfo->FileName = "ipconfig";
		pr->StartInfo->UseShellExecute = false;
		pr->StartInfo->RedirectStandardOutput = true;
		pr->StartInfo->CreateNoWindow = true;
		pr->EnableRaisingEvents = false;
		pr->Start();
		pr->BeginOutputReadLine();  
 }
В таком случае утечек памяти не будет?

Последний раз редактировалось Koldun90; 28.07.2018 в 10:25.
Koldun90 вне форума Ответить с цитированием
Старый 28.07.2018, 11:24   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

нет
https://en.wikipedia.org/wiki/Garbag...mputer_science)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что происходит если для потока уже вызвали pthread_join? WolfEater Помощь студентам 1 24.04.2016 07:39
запуск потока из таймера, как? buket Общие вопросы Delphi 6 16.12.2011 11:36
Запуск таймера из потока (delphi 2010) Terikon Общие вопросы Delphi 10 07.08.2010 18:09
(process.h) Компилятор говорит Process не объявлен Парсифаль Общие вопросы C/C++ 0 15.02.2010 00:27
Управление потоками. Запуск, остановка, приоритет потока. metamfetamin Помощь студентам 5 11.11.2007 12:45