Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Visual C++ Файлы разных форматов В инете нигде не нащел ничего подобного. Очень давно мучает вопрос: Как в своей проге воспроизвести мп3, ави, анимацию, как работать с зип, рар и прочими архивами? Как сделать, чтоб програма понимала эти файлы? https://www.cyberforum.ru/ visual-cpp/ thread117344.html Не работает с Excel 2003, работает с Excel 2007 Visual C++
Visual Studio 2008 SP1, проект MFC. В файле stdafx.h прописываю следующее для работы с Excel (тестировал в Excel 2007). #import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE12\\MSO.DLL" \ rename("RGB","ex_RGB") using namespace Office; #import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB" using namespace VBIDE; #import "C:\\Program...
Visual C++ RichTextBox и спецсимволы Всем Здравствуйте! Подскажите пожалуйста: У меня на форме есть RTB(RichTextBox), кнопка. Текст в RTB: X2 При нажатии на эту кнопку выделенный текст в RTB должен трансформироваться в следующий: (см. изображение) Как в ворде. Помогите пожалуйста! https://www.cyberforum.ru/ visual-cpp/ thread117048.html Visual C++ Считывание файла https://www.cyberforum.ru/ visual-cpp/ thread116967.html
Доброе время суток. Столкнулся с проблемой. Считываю из файла: dct_file->SeekToBegin(); int len=dct_file->GetLength(); char *ch_rd=new char; dct_file->Read(ch_rd, len); В результате чтения из файла в переменную ch_rd считывается либо не весь файл, либо больше, чем есть в файле и тогда в конце появляется мусор. Подскажите пожалуйста, почему не считывается точное количество данных?
Visual C++ Картинка в Visual C++
Подскажите, пожалуйста, можно ли в среде Visual Studio написат программу, которая при запуске открывает окно с картинкой. И можно ли эту картинку нарисовать средствами C++? Можно ли картинку загрузить из файла? И где про это можно почитать?? Заранее спасибо.
Visual C++ Заполнить ListBox в доп. потоке MFC приложение. На форме есть ListBox. К нему привязана переменная CListBox mListResults. В классе диалогового окна описана функция для создания потока. static UINT YahooFinder(LPVOID); Нужно в потоке заполнить ListBox + передать в поток строку CString mFindText Я создаю структуру struct InfoToStream { CListBox* pCLB; CString* pText; https://www.cyberforum.ru/ visual-cpp/ thread116596.html
Visual C++ fopen_s рушил свой архив переделать: вместо ReadFile решил использовать fread так вот возникла такая вот проблемка... делаю проверку на существование выходного файла: if (fopen_s(&stream2, oFile, "w") != 0) { return -1; } почему-то он срабатывает :( хотя файл там есть... oFile я обнулил через memset() https://www.cyberforum.ru/ visual-cpp/ thread116584.html Диагонали квадратной матрицы Visual C++
Дана целочисленная квадратная матрица порядка N, определить минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Visual С++. Заранее благодарен!
Visual C++ Произведение элементов прямогугольной матрицы Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы Y состоящей из M сток и N столбцов, сумма двух индексов которых есть число чётное. На языке C++ Заранее спасибо https://www.cyberforum.ru/ visual-cpp/ thread116578.html Visual C++ Квадратная матрица https://www.cyberforum.ru/ visual-cpp/ thread116577.html
Дана квадратная матрица А порядка n. Составить программу, которая находит минимальный элемент и все элементы расположенные в одной стоке и столбце с минимальным, заменяет на минимальное значение. Учесть, что значения в Массиве не повторяются. Заранее благодарен!
Невозможно создать приложение с базами Visual C++
При создании MFC приложения с базами данных после нажатия кнопки Finish, выскакивает сообщение E:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe. Если создавать приложение без баз - то всё нормально. Подскажите что сделать пожалуйста. Добавлено через 6 часов 4 минуты Сделал другой тип базы *.mdb теперь проект создался, но не компилируется. В логе ошибка ...
Visual C++ Запись из одного файла в другой #include "stdafx.h" #include <windows.h> #include <iostream> #include <stdio.h> using namespace std; void Text5(char *fname, char *s); void Text6(char *fn1, char *fn2); https://www.cyberforum.ru/ visual-cpp/ thread116480.html
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
18.04.2010, 08:23 0

Корректное завершение потока - Visual C++ - Ответ 668577

18.04.2010, 08:23. Показов 3880. Ответов 9
Метки (Все метки)

Ответ

Цитата Сообщение от ivan.sergei Посмотреть сообщение
Но даже при том, что используется глобальный флаг, то почему сам поток тоже подвисает, почему происходит это?? По логике если просто не присваивается значение переменной в потоке, то он все равно должен работать...
мы этого не видим - это ваше мнение, а не факт.
как уже неоднократно писалось, телепатов здесь нет.
что вы там в потоке делаете и с какими данными - можно лишь гадать.

Цитата Сообщение от ivan.sergei Посмотреть сообщение
Хорошо, если использовать не глобальный флаг, тогда как правильно передать потоку сообщение о том, что после завершения текущей итерации ему следует завершить работу??
еще раз:
Цитата Сообщение от Patch Посмотреть сообщение
нужно использовать семафоры, мьютексы, или любой другой сигнальный механизм.
неправильно также и то, что вы блокируете основной поток программы.
ведь на время блокировки вы не сможете ни отрисовывать на экране информацию, ни обрабатывать нажатия клавиш... вообще ничего.
а второй поток может работать очень-очень долго, до того, как снимет блокировку.
правильно было бы сделать так
1)по нажатию кнопки закрытия главный поток выставляет сигнальный семафор и продолжает работать дальше.
2)второй поток на каждой итерации проверяет семафор, и обнаружив его установленным - посылает в главный поток сообщение в стандартную очередь сообщений и закрывается.
3)главные поток получает сообщение из очереди и либо сразу делает то, что вам нужно(в вашем случае - закрывается), либо сначала выставляет WaitForSingleObject на поток(как сделано у вас).
это позволяет свести к минимуму время ожидания главного потока.

Вернуться к обсуждению:
Корректное завершение потока Visual C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2010, 08:23
Готовые ответы и решения:

Завершение работы потока
Здравствуйте уважаемые программисты! У меня в WinMain() запускается поток1 строчкой _beginthread(...

Правильное завершение потока
Программа является сервером TCP, прослушивание порта происходит в отдельном потоке, вот процедуры...

Корректроне завершение потока
В моем приложении два потока. Основной работает с сетью а дочерний в цикле постоянно читает команды...

Завершение основной программы из дочернего потока _beginthread
Подскажите пожалуйста команду, которая закрывает основную программу из созданного потока

9
18.04.2010, 08:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2010, 08:23
Помогаю со студенческими работами здесь

Корректное завершение потока без утечки памяти
Здравствуйте, есть разбирался с многопоточностью и остановился на _beginthreadex. Суть программы,...

Корректное завершение
Когда закрываю окно QGraphicsView`а, процесс остается еще запущен и пишет еще что возникла ошибка....

Корректное завершение QCoreApplication
Добрый день! OC: Windows 7 Professional Qt: 5.7.0 Есть приложение QCoreApplication: int...

Потоки и их корректное завершение
Доброго времени суток! Необходима Ваша помочь. Есть поток, организованный так: void...

Корректное завершение работы сокетов
У меня система работает на синхронных сокетах. Для приема данных создается отдельный поток...

Корректное завершение дочернего процесса
Я тестирую оконную программу - открываю и закрываю её несколько раз. Иногда программа завершается с...

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