tCurlBase

TCurlBase - базовый класс и для tCurl, и для tCurlMulti.

Его основная цель - предоставление опционального потока для выполнения передач в фоне, чтобы оконные приложения
не казались "зависшими" во время потенциально блокирующих системных вызовов, таких как разрешение имён через DNS или функция connect() .

Примечание: tCurlBase спроектирован только как базовый класс, вам никогда не потребуется создавать экземпляры этого класса!

property Threaded: boolean; (default=False)

ПРи установке в TRUE включит использование фонового потока для этого объекта.
Все свойства, описанные ниже, теряют смысл при Threaded установленном в FALSE.

property OnWait: TNotifyEvent;

Это событие будет происходить каждые WaitInterval миллисекунд во время выполнения функции Perform экземпляра класса tCurl или tCurlMulti.
Основная цель этого события - позволить приложению вызвать функцию ProcessMessages,
или произвести другие операции по обновлению GUI, и т.п.

Заметим, что в этот момент любое взаимодействие между GUI и библиотекой libcurl не является гарантировано 100% thread-safe,
поэтому старайтесь проделывать минимальное число операций внутри обработчиков событий при включенном threading.

property WaitInterval: LongInt; (default=1000 ms)

Промежуток времени, в миллисекундах, между вызовами событий OnWait или колбека WaitCallback.

property WaitCallback: tCurlWaitCallback;

По аналогии со свойством OnWait, позволяет задать C-образный колбек, а не обработчик события.
Портотип этого колбека таков:
type tCurlWaitCallback = procedure ( UserData:pointer ); cdecl;

Помните, что свойства OnWait и WaitCallback - взаимоисключающие, т.е. установка одного автоматически установит другое в NIL.

property WaitData: tCurlWaitCallback;

Указатель на произвольные данные, передаваемые в параметре UserData функции WaitCallback.