Netspirit писал(а):
Тут не совсем понялИмелось в виду, что SetEvent снимает более высокоприоритетный поток с ожидания, а scheduler винды моментально передает ему управление.
И не отдаст обратно, пока поток не завершится полностью.
Но все это не срабатывает, если doClose запускается от onRead - приоритеты тогда одинаковые.
Netspirit писал(а):
потому что уверен, что решил эту задачуРешить задачи в некотором частном случае можно, конечно же. Любой деструктор решает ее - метод объекта, который убивает сам себя.
И в COMex можно, пожалуй. Например, делать CloseHandle(hFile) прямо по окончании thrd (предварительно дождавшись окончания thwr).
Но это вовсе не разговор о глобальных паттернах.
Netspirit писал(а):
нужно делать record с 2-мя полямиЕсли заниматься буквоедством, то тип второго параметра - указатель на статический массив хэндлов. А не на record.
У меня там жульство применено, посмотри внимательней. OvrRd.hEvent и EvRdStop расположены в hiCOMex последовательно. Т.е., рядом: offset первого хэндла - 38h, второго - 3Ch