DLL и Timeout

 
Привет всем, а никто никода не задавался вопросом таймаута при стуке в длл? К примеру, если через 10 сек нет ответа, то запрос не актуален.
 
Red.Line >>:
Привет всем, а никто никода не задавался вопросом таймаута при стуке в длл? К примеру, если через 10 сек нет ответа, то запрос не актуален.

Нереально. В MQL нету асинхронного вызова. Как вариант, асинхронно можно вызывать уже в длл, но сделать это непросто.

 
То есть как не крути дем ответа от длл.. Ясна, пасиба. :(
 
Red.Line >>:
То есть как не крути дем ответа от длл.. Ясна, пасиба. :(

Да, но если запускать в длл асинхронно, ответ придет сразу. Но тогда появится проблема синхронизации. Ее можно решать как в MQL так и в длл.

Наверное самый оптимальный вариант -- ловить таймаут именно в длл, а параметры для него передавать из MQL. Но реализация все равно непростая.

Но реализуемо :) .

 

легко .. как два пальца об асфальт )) :

Winbase.h

___________________________

HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // дескриптор защиты SIZE_T dwStackSize,        // начальный размер стека LPTHREAD_START_ROUTINE lpStartAddress,     // функция потока LPVOID lpParameter,       // параметр потока DWORD dwCreationFlags,    // опции создания LPDWORD lpThreadId         // идентификатор потока );

см MSDN

 
Valio >>:

легко .. )) как два пальца об асфальт :

Угу, зачот. Если все так легко -- может сразу код готовый -- с синхронизацией таймерами и привязкой к MQL? Это ж на пару сек работы -- 2 пальца обосвальт.

Вобщем Red.Line вот Вам готовый исполнитель :).

 
TheXpert писал(а) >>

может сразу код готовый -- с синхронизацией таймерами и привязкой к .. ?
Вобщем Red.Line вот Вам готовый ...

Ах, если бы только найти индивида! ... Уж я так устрою, что он свои деньги мне сам принесет, на блюдечке с голубой каемкой..

И. Ильф, Е. Петров, "Золотой теленок"

ЗЫ: Какие еще там таймеры, на .. козе баян, вы бредете ))

 
Мысля о CreateThread, кстати, интересна.. Можно найти поток к длл и грохнуть его по истечению таймаута.. Покопаю в этом направлении.. :)
 
Red.Line писал(а) >>
Мысля о CreateThread, кстати, интересна.. Можно найти поток к длл и грохнуть его по истечению таймаута.. Покопаю в этом направлении.. :)

Оно единственно как решение, имхо .. "грохать" это варварски, можно и по-цивилизованному - использовать технику семафоров, умрет сам )

 
В общем решение нашлось. Сделал длл импортирующую и экспортирующую функции другой длл, все жто через поток обрубил таймаутом. Канает..
 

Любопытно, что за ценный код для таких жертв ? Нельзя самому переписать

или как худшее - компильнуть в asm а затем свою "обертку" сверху вставить ?

Если все работает - можно проверить на утечки памяти и ее аттрибуты