|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
Отправка почты в другом потоке03.08.2009, 10:30. Показов 3400. Ответов 20
Метки нет (Все метки)
Народ, мне надо отправить почту в дугом потоке, чтобы програ не висла.
С помощью компонентов NMSMTP или IdSMTP. Программу написал, в поток входит, но почту не отправляет. Где-то читал, что в многопочных приложениях нельзя использовать VCL компоненты Помогите кто чем может Заранее спасибо
0
|
|
| 03.08.2009, 10:30 | |
|
Ответы с готовыми решениями:
20
Как получить значение переменной созданной в потоке, в другом потоке?
Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке |
|
|
||
| 03.08.2009, 10:46 | ||
|
0
|
||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 10:51 [ТС] | |
|
oxotnik, а как это осуществить?
и что такое синхронизация?
0
|
|
|
|
||||||||||||
| 03.08.2009, 10:55 | ||||||||||||
|
простейшая синхронизация - выставление критических секций (различные потоки не смогут одновременно изменять одни и те же данные) в начале программы:
0
|
||||||||||||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 11:04 [ТС] | |
|
oxotnik, поток создаю с помощью TThread
File->New->Other->Thread и это всё? вставлю в код и будет работать?
0
|
|
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
||||||
| 03.08.2009, 11:15 [ТС] | ||||||
0
|
||||||
|
|
||||||
| 03.08.2009, 11:30 | ||||||
|
а в основном потоке отправляет?
все порты настроены?Form1->IdSMTP1->Send(Form1->IdMessage1); и Form1->IdSMTP1->Connect(); в catch(...) не улетают? если улетают, то с каким исключением? ЗЫ: с TThread не работал, за правильность его использования ничего сказать не могу. через АПИ как то так:
0
|
||||||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 11:47 [ТС] | |
|
oxotnik, нет, в catch не улетают
а разве AnsiString Message; не TIdMessage Message? поток начнет отправляться CreateThread(NULL, 0, SMTPThread , (LPVOID)pParams, NULL, NULL); здесь?
0
|
|
|
|
|||
| 03.08.2009, 11:56 | |||
|
0
|
|||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 11:59 [ТС] | |
|
но едь он должен запуститься сразу же? иначе какой в нем смысл?
0
|
|
|
|
||
| 03.08.2009, 12:06 | ||
|
0
|
||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 12:07 [ТС] | |
|
oxotnik, а у тебя этот код работает?
0
|
|
|
|
||
| 03.08.2009, 13:22 | ||
|
еще раз: в основном потоке твоя конструкция работает? (отладь пока в однопоточном приложении) если да, то не вижу причин по которым в дочернем потоке работать не будет.
0
|
||
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 13:39 [ТС] | |
|
oxotnik, [C++ Error] Unit1.cpp(59): E2451 Undefined symbol 'CRITICAL_SECTIN'
CRITICAL_SECTIN cs; InitializeCriticalSection(&cs); нужно писать в начале программы?
0
|
|
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 03.08.2009, 13:50 [ТС] | |
|
oxotnik, Работет!!!! респект тебе, брат.
0
|
|
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 04.08.2009, 14:59 [ТС] | |
|
oxotnik, у меня еще один вопрос, когда функция потока возвращает 0 (return 0) то поток уничтожается? просто мне нужно отправлятьпосту неоднократно, то есть когда поток завершиться можно не боясь опять запускать его?
0
|
|
|
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
|
|
| 04.08.2009, 15:08 [ТС] | |
|
oxotnik, дело в том что я использую IDSMTP в потоке, поэтому если два потока создаются, то возникает конфликт
0
|
|
| 04.08.2009, 15:08 | |
|
Помогаю со студенческими работами здесь
20
Отправка почты: "необработанное исключение отправки почты в system.Dll" ProgressBar в другом потоке Как правильно сделать получение почты в отдельном потоке? Ивент с реакцией в другом потоке QProgressBar::setValue() в другом потоке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|