Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 10.05.02 09:04

Кое-что из нашей кладовки   |x|
Лучшее из нашего FAQ   |x|
Так ли необходимо использовать GetHostByName вместо аналогичного асинхронного метода
Q: Так ли необходимо использовать GetHostByName вместо аналогичного асинхронного метода, если все синхронные методы сильно грузят процессор и их трудно прервать в случае необходимости, только через TerminateThread. Я тут обрадовался советам, написал кэш имен и ip адресов, сделал через GetHostByName, прилепил нотификации, многопоточность, а оказывается, все опять нужно переделывать? Или оставить как есть? Дело в том, что я это, несомненно буду использовать в последующих разработках, и мне хочется делать сразу на совесть. Дайте совет, please. Я проверял, все это хозяйство вроде процессор грузит достаточно мало.


A: Ты прав, никакой нагрузки на процессор нет. Пример тому - AMV и ADR (см. подпись), многопоточные программы, использующие только berkley-подмножество WinSocks 1.1, никаких асинхронных функций. Каждое письмо посылается и каждый емайл проверяется отдельным потоком. Прерывать при помощи TerminateThread тоже не надо. Когда мне нужно остановить поток (пользователь остановил проверку адресов), я делаю так:

1). устанавливаю int network_off = true

2). из главного потока делаю shutdown и closesocket для сокета потока - даже
если я висел на recv или send, то они увидев это вывылятся

3). в коде потока часто-часто стоят проверки переменной network_off и если
true, то поток __самостоятельно__ и цивилизовано завершается, если он не
соизволит остановится увидев "ошибку сети"

4). главный поток ждет 500 мс и считает сколько осталось потоков, если
потоки завершились не все, то он ждет еще 500 ms т повторяет операцию, лишь
за тем он вызывает для непокорных потоков TerminateThread

На самом деле пункт 4 немного похитрей ;), но идея такая. Потоки мне убивать
практически никогда не приходится.

Alexander P. Gorlach,
Elcom E-mail Management Software Team:
* Advanced Mail List Verify: http://www.elcomsoft.com/amv.html
* Advanced Direct Remailer: http://www.elcomsoft.com/adr.html

»»» Прислать свои комментарии

Советы по программированию в Дельфи

10) Разрушение Frame из собственного обработчика

unit1;
uses ... unit2;
const WM_FreeFrame=WM_User+999;

procedure FreeFrame(var msg:tmessage);message WM_FreeFrame;
var  f:tframe2;

implementation

procedure TForm1.Button1Click(Sender: TObject);
begin
 f:= TFrame2.Create(self);
 f.Parent := self;
end;

procedure TForm1.FreeFrame(var msg: tmessage);
begin
 f.free;
end;
-------------
unit2;
uses unit1;

procedure TFrame2.Button1Click(Sender: TObject);
begin
sendmessage(form1.handle,WM_FreeFrame,0,0);
end;

Автор: Б. Новгородов (MBo)

Обсуждается в конференциях   |x|
  • Классы
    Народ, очень надо, кто-нить может дать точное опредиление классов ? Спасибо
  • Прерывание выполнения запроса
    Здравствуйте, уважаемые знатоки! Вопрос, конечно простой, но не подскажите ли мне, как мне программно прервать ...
  • Знатоки FoxPro ПОМОГИТЕ !!!
    Требуется исходник ерундовой програмки отображающей на экране главное меню: Ввод->Форма Отчет->Отчет1 ...
  • Как сохранить ADOTable в формате MSAccass (*.mdb)
    Добрый вечер, господа! Работаю с ADO и вот наткнулся на такую проблемку, как сохранить вновь созданную таблицу в ...
  • Как заставить зе бат запускаться правильно?
    Здравствуйте! Подскажите, немогу разобраться.. Из программы запускаю почтовый клиент (у меня зе бат) и создаю письмо с ...
  • рПЮЕНХ
    РТЙ РПРЩФЛЕ УПИТБОЙФШ Blob РПМЕ ЧЩДБЕФУС ПЫЙВЛБ "Insufficient or incorrect key column information; too many rows ...
  • Сохранение базы данных
    Добрый вечер! У меня есть БД типа dBASE. После внесения изменений в БД нажимаю кнопку POST на DBNavigator-е. Данные при ...
У нас большой выбор статей   |x|
Функции оболочки ( ShellApi ) Работа с корзиной в Delphi
На форуме с завидным постоянством появляются вопросы, как мне отправить или удалить файл в корзину(Recycle Bin), этой статьей я хочу раз и навсегда закрыть эту "наболевшую тему", а может и открыть. Так же это статья открывает, новый проект нашего сайта DSDN.
Но как скажете Вы ближе к телу, простите делу…
Новинки книжного рынка   |x|
Самоучитель Kylix
Книга посвящена новому продукту фирмы Borland - объектно-ориентированной среде для быстрой разработки приложений под Linux. Рассматривается версия Kylix 1.0 Server Developer.
Приводятся приемы работы с графическими компонентами, принципы создания приложений баз данных и собственных компонентов.
Дается краткое описание языка программирования Object Pascal. Последняя часть книги посвящена проблеме создания межплатформенных приложений, которые работают как в среде Linux, так и в Windows.
Изложение сопровождается многочисленными примерами и фрагментами кода.Для программистов

Автор: Понамарев В.
Другие сайты о DELPHI   |x|
Объектная база данных / Записки программиста
Пример объектной базы данных и многое другое.

» Оценка сайта: 2
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
»»» Обязательно!
»»» Иногда можно
»»» Я туда не пойду
»»» Категорически нет
Журнал "RSDN Magazine"  |x|

Дорогие друзья! Мы рады представить вам новый совместный проект сайтов www.rsdn.ru, delphi.mastak.ru и www.optim.ru - профессиональный журнал для программистов RSDN Magazine.
Несомненно, ваше мнение о необходимости такого журнала, содержании рубрик и темах отдельных статей поможет сделать журнал более полезным и интересным. Высказать свое мнение, проголосовать или же подписаться вы можете на сайте. Без вашего участия, нам будет трудно сделать правильный журнал!
На сайте выложен анонс пилотного выпуска журнала, вступительное слово от редакции.

Для души

Хокку дня
Оторвал глаза
Интернет - наркоманит
Ночь на исходе.

Афоризмы
Антон Павлович Чехов справедливо утверждал, что не существует национальной культуры, также, как не существует национальной таблицы умножения....

Фраза дня
Я сегодня не такой, как вчера - а вчера я был вообще никакой

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Джоржии (США) разрешается бить любого, кто оскорбляет вас бранными выражениями.
В городе Гейнсвилл (США) издано специальное распоряжение, предписывающее “есть курицу руками”.

И на закуску коротенький анекдот
- Доктоp, вы лечите боязнь откpытых пpостpанств?
- Конечно.
- А закpытых?
- Естественно...
- Видите ли, у моего сына и то, и дpугое....
- Аааа, думеpов мы не лечим...

Фотоприколы.
Начните день с хорошего настроения!
http://delphi.mastak.ru/cgi-bin/prikol.pl?id=78484


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (delphi@mastak.com)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное