информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСетевые кракеры и правда о деле ЛевинаSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
потоки и API-функции в MFC 01.02.03 05:32  Число просмотров: 1158
Автор: 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 и стандартной библиотеки при этом надо будет крайне осторожно.
<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