информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаЗа кого нас держат?Портрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный сбой Azure и других сервисов... 
 Серьезный сбой AWS положил множество... 
 Фишинговая атака на Python-разработчиков 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
потоки и API-функции в MFC 01.02.03 05:48  Число просмотров: 1095
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
> > везде подразумевается использование MFC
> > вопрос номер раз:
> > подскажите плиз функции для работы c потоками...так
> чтобы
> > их можно было принудительно завершать из других
> потоков.
> > насколько я понял с AfxBeginThread такое не
> получится.
>
> Получится, хотя по отношению к ресурсам это не есть хорошо.
а какой функцией это делается (принудительное закрытие потока извне)?

> Если вызывать как ::CreateThread, вызовется. Только
> использовать в этом потоке функции из MFC и стандартной
> библиотеки при этом надо будет крайне осторожно.
большое спасибо!
<beginners>
потоки и API-функции в MFC 01.02.03 02:17  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
везде подразумевается использование MFC
вопрос номер раз:
подскажите плиз функции для работы c потоками...так чтобы их можно было принудительно завершать из других потоков.
насколько я понял с AfxBeginThread такое не получится.

и второй вопрос:
как из MFC-проекта вызывать API-функции..
ту же CreateThread(где 6 параметров) вызвать не удалось...хотя я и подключил все необходимые заголовки и библиотеки. вместо нее зато есть какаято с 2-мя или 3-мя параметрами, с которой непоятно что делать (в MSDN ничего толком не написано)...вот она кстати:
BOOL CreateThread( DWORD dwCreateFlags = 0, UINT nStackSize = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );

заранее спасибо
потоки и API-функции в MFC 01.02.03 05:32  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> везде подразумевается использование MFC
> вопрос номер раз:
> подскажите плиз функции для работы c потоками...так чтобы
> их можно было принудительно завершать из других потоков.
> насколько я понял с AfxBeginThread такое не получится.

Получится, хотя по отношению к ресурсам это не есть хорошо.

> и второй вопрос:
> как из MFC-проекта вызывать API-функции..
> ту же CreateThread(где 6 параметров) вызвать не
> удалось...хотя я и подключил все необходимые заголовки и
> библиотеки. вместо нее зато есть какаято с 2-мя или 3-мя
> параметрами, с которой непоятно что делать (в MSDN ничего
> толком не написано)...вот она кстати:
> BOOL CreateThread( DWORD dwCreateFlags = 0, UINT nStackSize
> = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );
> заранее спасибо

Если вызывать как ::CreateThread, вызовется. Только использовать в этом потоке функции из MFC и стандартной библиотеки при этом надо будет крайне осторожно.
потоки и API-функции в MFC 01.02.03 05:48  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
> > везде подразумевается использование MFC
> > вопрос номер раз:
> > подскажите плиз функции для работы c потоками...так
> чтобы
> > их можно было принудительно завершать из других
> потоков.
> > насколько я понял с AfxBeginThread такое не
> получится.
>
> Получится, хотя по отношению к ресурсам это не есть хорошо.
а какой функцией это делается (принудительное закрытие потока извне)?

> Если вызывать как ::CreateThread, вызовется. Только
> использовать в этом потоке функции из MFC и стандартной
> библиотеки при этом надо будет крайне осторожно.
большое спасибо!
потоки и API-функции в MFC 01.02.03 06:04  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> > Получится, хотя по отношению к ресурсам это не есть
> хорошо.
> а какой функцией это делается (принудительное закрытие
> потока извне)?

TerminateThread (если нитка создавалась через AfxBeginThread, то к CWinThread::m_hThread). Но это чревато утечкой ресурсов. Разумнее свистнуть потоку, чтобы он сам корректно завершился - флажком каким-нибудь, например.
потоки и API-функции в MFC 02.02.03 02:53  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
> > > Получится, хотя по отношению к ресурсам это не
> есть
> > хорошо.
> > а какой функцией это делается (принудительное закрытие
> > потока извне)?
>
> TerminateThread (если нитка создавалась через
> AfxBeginThread, то к CWinThread::m_hThread). Но это чревато
> утечкой ресурсов. Разумнее свистнуть потоку, чтобы он сам
> корректно завершился - флажком каким-нибудь, например.

Такая вот задача. Нужно создать поток (пишу из MFC) и если он зависнет (это будет опред. пользователь), чтобы пользователь мог без проблем закрыть его, без утечек ресурсов и прочего. Ведь это как то делается в других программах. У Рихтера искал и не нашел, он тоже советует завершать поток изнутри, а так мол чреевато. А в "профессиональном программировании на VC++" Круглински вообще только как изнутри описывается.


p.s. кстати как завершить поток извне созданный _beginthreadex
потоки и API-функции в MFC 02.02.03 04:44  
Автор: _йцукенг_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > > Получится, хотя по отношению к ресурсам это
> не
> > есть
> > > хорошо.
> > > а какой функцией это делается (принудительное
> закрытие
> > > потока извне)?
> >
> > TerminateThread (если нитка создавалась через
> > AfxBeginThread, то к CWinThread::m_hThread). Но это
> чревато
> > утечкой ресурсов. Разумнее свистнуть потоку, чтобы он
> сам
> > корректно завершился - флажком каким-нибудь, например.
>
> Такая вот задача. Нужно создать поток (пишу из MFC) и если
> он зависнет (это будет опред. пользователь), чтобы
> пользователь мог без проблем закрыть его, без утечек
> ресурсов и прочего. Ведь это как то делается в других
> программах.
>У Рихтера искал и не нашел, он тоже советует
> завершать поток изнутри, а так мол чреевато.
>А в "профессиональном программировании на VC++" Круглински
> вообще только как изнутри описывается.
пиши программы так, чтобы потоки не висли.
а вообще-то вполне нормально в потоке в цикле проверять значение Event-а, используемого только для цели информирования рабочих потоков о том, что пора закругляться.

очень рекомендую использовать NuMega BoundsChecker - продукт просто незаменимый для нахождения разных там утечек.

> p.s. кстати как завершить поток извне созданный
> _beginthreadex
тем же самым TerminateThread.
передаёшь хэндл потока.
потоки и API-функции в MFC 02.02.03 04:33  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> Такая вот задача. Нужно создать поток (пишу из MFC) и если
> он зависнет (это будет опред. пользователь), чтобы
> пользователь мог без проблем закрыть его, без утечек
> ресурсов и прочего. Ведь это как то делается в других
> программах. У Рихтера искал и не нашел, он тоже советует
> завершать поток изнутри, а так мол чреевато. А в
> "профессиональном программировании на VC++" Круглински
> вообще только как изнутри описывается.

Ну что значит "зависнет". Т.е. у него внутри есть какой-то длительный счет, героический цикл и т.п.? Так и писать надо сразу с учетом такой возможности, раскидывая по таким кускам кода проверку флажков.

> p.s. кстати как завершить поток извне созданный
> _beginthreadex

Ну так она же хэндл возвращает.
я смотрю тут никто не спит :) 02.02.03 05:01  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>

>
> Ну что значит "зависнет". Т.е. у него внутри есть какой-то
> длительный счет, героический цикл и т.п.? Так и писать надо
> сразу с учетом такой возможности, раскидывая по таким
> кускам кода проверку флажков.

я был бы рад, чтобы она не зависала. Но это не от меня зависит. Я просто вызываю FindFirstFile в сети, которая (работа с сетью), как известно, очень криво реализована в Виндоусе (тот, кто часто лазит по большой локальной сети, меня поймет)
Хотелось бы сделать все самому (тогда можно было бы все контролировать) , но, к сожалению, как я не старался найти описание протокола SMB (искал на MSDN, здесь спрашивал..) не нашел. Единственно, что остается это лезть в исходники Samba Server. :(

Так значит решения этой задачи (о завершении потока) в общем случае не существует? даже в NT?


> > p.s. кстати как завершить поток извне созданный
> > _beginthreadex
>
> Ну так она же хэндл возвращает.
понял, спасибо.

кстати никто не подскажет адрес технического форума Microsoft?
я смотрю тут никто не спит :) 02.02.03 05:19  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
> я был бы рад, чтобы она не зависала. Но это не от меня
> зависит. Я просто вызываю FindFirstFile в сети, которая
> (работа с сетью), как известно, очень криво реализована в
> Виндоусе (тот, кто часто лазит по большой локальной сети,
> меня поймет)
> Хотелось бы сделать все самому (тогда можно было бы все
> контролировать) , но, к сожалению, как я не старался найти
> описание протокола SMB (искал на MSDN, здесь спрашивал..)
> не нашел. Единственно, что остается это лезть в исходники
> Samba Server. :(
> Так значит решения этой задачи (о завершении потока) в
> общем случае не существует? даже в NT?

А, ну если зависание это от самой программы не зависит, то тут делать нечего, придется действительно аварийно прибивать.

> кстати никто не подскажет адрес технического форума
> Microsoft?

Начиная примерно отсюда: http://communities.microsoft.com/
спасибо 02.02.03 05:24  
Автор: vh <Дмитрий> Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach