Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > [ vista ] как связать CreateThreadpoolIo


Автор: Graf_h 3.3.2010, 19:10
Здравствуйте, подскажите пожалуйста, ка кправильно привязать пул потоков к комплишн порту.
Вот код 

Код

void initializePoolThreads(){
        InitializeThreadpoolEnvironment(&reciver_env);
        reciver_pool=CreateThreadpool(NULL);
        BOOL val=SetThreadpoolThreadMinimum(reciver_pool,count_threads);
        SetThreadpoolThreadMaximum(reciver_pool,count_threads*4);
        SetThreadpoolCallbackPool(&reciver_env,reciver_pool);
        reciver_cg=CreateThreadpoolCleanupGroup();
        SetThreadpoolCallbackCleanupGroup(&reciver_env,reciver_cg,NULL);
        reciver_io=CreateThreadpoolIo(comPort,&V_ComPortServer::IoReciverCallback,this,&reciver_env);
        if (reciver_io)
            StartThreadpoolIo(reciver_io);
    }


В итоге получается, что reciver_io=NULL GetLastError()==6

Автор: Graf_h 4.3.2010, 19:55
Вобщем покопался я в доках, впринципе комплишн порта совсем не нужно ).  Моя ошибка в том что я скидывал в CreateThreadpoolIo хендл комплишн порта вместо хендла сокета.  Если ранше мы связывали комплишн порт с сокетом, тут просто скидываем хендл сокета ). Все проще некуда. Вот ссылка на статейку: http://msdn.microsoft.com/ru-ru/magazine/cc163327.aspx
Кто то ообще юзал эти апи?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)