В данном опусе речь пойдет о создании потоков. Но не о простом создании, а о более-менее сложных случаях, когда в контексте потока должен выполняться метод некоторого класса, естественно, при условии, что поток создается этим же классом.(
Read more... )
Reply
вариант _voodoo_thunk особо ничем не отличается от вариантов со статическими методами, просто в _voodoo_thunk этот метод завуалирован, и у разных экземпляров класса CVoodoo эта функция (которая потом передается в CreateThread) будет одна и та же
Reply
Да, и еще. Для callback'ов такая схема не годится.
Так может быть, дело не в "кошках"? :)
Reply
Reply
Reply
т.е. _DoProc вызываются разные
но в CreateThread передается одна и та же функция в качестве параметра ThreadProc, т.е. есть статическая функция, хоть она и не указана в описании класса
Reply
Reply
просто есть функция, которую скрывает ваш шаблон
хоть она не объявлена как член класса, но она есть и она одна для всех экземпляров класса
Спасибо за хороший пример кода
но жаль оно мне помогло в текущей задаче
Reply
Интереса ради, посмотрите на ассемблерный код, который генерирует компилятор из этого примера и увидите, что никакими статическими функциями там и не пахнет.
А что за задача?
Reply
ведь в CreateThread должен передаваться указатель на функцию
а я хотел сделать компоненты для DDE и хотел избавиться от статических callback, но пришел к выводу, что это (избавление) "почти" невозможно
оставил статический
Reply
Reply
Reply
Leave a comment