Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
 Аватар для pettson
214 / 117 / 2
Регистрация: 04.05.2010
Сообщений: 185
1

Потоки

17.09.2010, 19:12. Показов 3910. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне надо чтобы функция buffer_test() запускалась при запуске программы в отдельном потоке.

Пробовал так:
C++
1
2
3
   ThreadStart ^threadDelegate = gcnew ThreadStart(buffer_test());
   Thread ^newThread = gcnew Thread( threadDelegate );
   newThread->Start();
Но компилятор выдает ошибку:
C++
1
Error   1   error C3364: 'System::Threading::ThreadStart' : invalid argument for delegate constructor; delegate target needs to be a pointer to a member function   d:\findkey\rapidlinker\rapidlinker\Form1.h  280
Что неправильно?
И где можно почитать про потоки в windows form?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2010, 19:12
Ответы с готовыми решениями:

Потоки
Всем доброго дня! Я только начал изучать С++ для .NET. Подскажите пожалуйста, каак работать с потоками. Перерыл весь интернет ничего толком...

Потоки не увеличивают производительность
коллеги подскажите что я неправильно делаю у меня есть такой цикл for(i = 0; i < cnls->Length; i++) ...

System::Threading::Thread Потоки в CLR
Можете подсказать как работает потоки в CLR ? Обычные потоки (std::thread] не могу использовать можете прислать ссылки на статьи? Или сами...

7
2 / 2 / 0
Регистрация: 28.08.2010
Сообщений: 39
17.09.2010, 20:51 2
http://msdn.microsoft.com/ru-r... start.aspx

MSDN форева
1
 Аватар для pettson
214 / 117 / 2
Регистрация: 04.05.2010
Сообщений: 185
17.09.2010, 22:06  [ТС] 3
Сейчас посмотрю...
Но по-моему я оттуда и взял этот код
0
2 / 2 / 0
Регистрация: 28.08.2010
Сообщений: 39
17.09.2010, 23:03 4
Тогда внимательнее погляди на аргументы ThreadStart
invalid argument for delegate constructor; delegate target needs to be a pointer to a member function
0
 Аватар для pettson
214 / 117 / 2
Регистрация: 04.05.2010
Сообщений: 185
18.09.2010, 20:08  [ТС] 5
Вот сделал такой код:
C++
1
2
3
4
5
6
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
Form1 ^stream_buffer = gcnew Form1;
ThreadStart ^threadDelegate = gcnew ThreadStart(stream_buffer, &Form1::buffer_test);
   Thread ^newThread = gcnew Thread( threadDelegate );
   newThread->Start();
             }
Компилируется нормально но ожидаемого результата так и нет!
Мне надо чтобы функция buffer_test() запускалась как-бы отдельно от программы!
То есть при запуске программы она до выхода из неё все время проверяла если есть что-то
в буфере. Если есть то помещала это в текстбокс!
Но при таком коде ничего этого не происходит!
0
2 / 2 / 0
Регистрация: 28.08.2010
Сообщений: 39
18.09.2010, 21:34 6
C++
1
2
3
4
Form1^  form_ptr    =   gcnew Form1;
ThreadStart^    thread_test_start   =   gcnew ThreadStart(form_ptr,&Form1::threadTest);
Thread^ thread_test =   gcnew Thread(thread_test_start);
thread_test->Start();
собственно тоже самое А работает. Даже и не знаю, что посоветовать... Я в этой функции (threadTest) выдаю сообщение.
C++
1
2
3
4
5
6
7
8
private: void threadTest(void)
{
  MessageBox::Show(
  "Test",
  "Thread", 
  MessageBoxButtons::OK, 
  MessageBoxIcon::Information);
}
0
 Аватар для pettson
214 / 117 / 2
Регистрация: 04.05.2010
Сообщений: 185
18.09.2010, 21:40  [ТС] 7
Он у меня запускает две копии программы.
Но ни в одной не работает эта проверка буфера обмена!
Я вставлял в функцию buffer_test() код для вывода сообщения! и он выводил это сообщение а дальше ничего.
0
2 / 2 / 0
Регистрация: 28.08.2010
Сообщений: 39
18.09.2010, 21:55 8
Нет, ну если выводил сообщение, значит поток создался и запустился... Тогда проблема где-то еще...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2010, 21:55
Помогаю со студенческими работами здесь

Потоки
Приветствую. Возникла проблема: Программа проделывает действия с файлами, анализирует их и выводит статистику на экран. Вывожу...

Forms Потоки
Как реализовать потоки в forms? Напишите пожалуйста пример который реально работает (если вставить в код) visual studio c++

Потоки и сети
Здравствуйте! Имеется небольшой мини чат по сети. Надо то бы к этому чату подключалось несколько компьютеров, но при работе программы она...

Потоки SerialPort
Накидал на форму элементов, всё работает кроме функции, срабатывающей при получении данных с порта т.е. System::Void...

Windows Form потоки
Подскажите пожалуйста! Почему не создается второй поток? #include "MyForm.h" using namespace System; using namespace...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
Изменения в C# 14
stackOverflow 02.03.2025
Одно из самых значимых изменений в C# 14 - поддержка коллекционных выражений, которые позволяют создавать и инициализировать коллекции с помощью нового лаконичного синтаксиса. Это нововведение. . .
Разработка кроссплатформен­­­­ного мобильного приложения для iOS/Android на C++
bytestream 02.03.2025
C++ как язык программирования высокого уровня с прямым доступом к аппаратным ресурсам позволяет создавать приложения, работающие одинаково быстро как на iOS, так и на Android устройствах. Ни для кого. . .
Аутентификация/авторизация на Golang
bytestream 02.03.2025
Go предлагает множество возможностей для создания надежных систем аутентификации. Встроенные криптографические пакеты, высокая производительность и простота параллельной обработки запросов делают его. . .
Нововведения TypeScript 5.8
bytestream 02.03.2025
TypeScript 5. 8 приносит много возможностей и оптимизаций, которые существенно расширяют границы типобезопасного программирования на JavaScript. Эта версия включает ряд значительных улучшений в работе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru