Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
V>>>И да, сейчас получить указатель непосредственным образом можно только на статические методы. V>>>Ниже в сырцах можно подсмотреть, как получить указатель на экземплярный метод и как вызывать затем. S>> Нет не надо.
V>В твоих цитатах не объясняется — почему не надо.
Почему же не объясняется. При результате функции или или out или out параметров записываем результат в хранилище с поиском по интовому индексу.
Делаем статические методы где параметтры объекты в виде индексов и получение объектов из хранилища.
С генерацией методов врапперов. Натив вызывает эти методы.
Можно делать обертки над этими индексами, что бы в деструкторах удалять данные из хранилища и обнулять ссылки.
V>Например, есть способ построения конечного автомата на указателях на методы, представляющие состояние. V>Т.е., когда автомат ходит по состояниям, он изменяет текущее состояние через запоминание адреса метода, отвечающего за обработку входящих сигналов, и формирующего, как один из результатов своей работы, следующее состояние. Такой способ построения автомата считается одним из самых эффективных, т.к. переход на след.состояние — это просто вызов ф-ии по адресу. Учитывая, что в .Net 6.0 открыли кишки AsyncMethodBuilder и теперь можно писать произвольные свои асинхронные автоматы, я ожидаю рано или поздно появления более эффективных реализаций, чем имеющиеся дефолтные сейчас. Т.е. техника continuations может зацвести в дотнете новыми красками.
Ну сейчас сделано как итератор с MoveNext. Каждый MoveNext просто меняет состояние.
Посмотрим. Спасибо заодно почитаю про AsyncMethodBuilder
и солнце б утром не вставало, когда бы не было меня