Так ли необходимо использовать 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
Не получается установить KOLmdvDialogEx
При установки пакета возникает ошибка: Cannot load package "MirrorKOLPackageD6". It contains unit 'mckActionListEditor',...
Поставить точку... Быстрый доступ к пикселам TBitmap
В статье описан класс, обеспечивающий способ доступа к пикселам TBitmap, который сочетает в себе высокую скорость доступа, превосходящую метод с использованием ScanLine, и простоту и универсальность обращения к пикселам, подобно использованию Canvas.Pixels. Описанные методы можно использовать для решения несложных задач геометрических преобразований или обработки изображений.
Delphi и технология COM (+CD)
Книга посвящена использованию технологии Component Object Model (COM) в приложениях, созданных с помощью Delphi. Освещаются вопросы, связанные с принципами модели COM, разработкой элементов управления ActiveX, серверов и контроллеров автоматизации, применением OLE-документов в приложениях, а также с использованием программного обеспечения COM и COM+ для организации распределенных вычислений. Книга предназначена для опытных программистов, имеющих опыт разработки приложений с помощью Delphi и интересующихся вопросами применения COM-технологии и созданием распределенных приложений на ее основе.
Автор: Елманова Н. З., Трепалин С. В., Тенцер А.
VoidSoft Свежие новости мира Borland (и не только), авторские программы, статьи, компоненты, ссылки. Если у Вас есть вопросы по программированию - добро пожаловать на наш форум "Дельфинарий". Вы также ...
» Оценка сайта: 4
Опрос населения :)
Новый журнал для программистов "RSDN Magazine". Согласны ли вы его покупать ежемесячно?
Хокку дня
Бабочка в траве Открывает тишину Мира без меня.
Афоризмы
Жизнь бывает долгой, если долгой бывает старость... (Севрус)
Фраза дня
Кулер тоже вертолет. Только маленький еще.
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Сан Франциско запрещается выпускать на улицу слонов, если только их не ведут на поводке.
В городе Мэнвилл в Нью Джерси особым постановлением запрещено предлагать сигареты и алкоголь животным в зоопарке.
И на закуску коротенький анекдот
Беломорканал... Mercedes Benz... Казалось бы, никакой связи... Так и есть.