Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
предположим есть некая функция асинхронная которая дает возможность передать ей каллбак чтобы известить о завершении выполнения. Эта функция пусть выполняется длительное время. За которое может случиться еще один вызов этой функции. Нам нужно различать для какого вызова какой каллбэк прилетел, при условии что очередность каллбэков не равна очередности вызовово этой функции. Как? Пример: вызываем init (порядковый номер 1) init (2) init (3) callback (для какого init? 1,2 или 3) callback - ? callback - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2012, 20:20 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSqlНам нужно различать для какого вызова какой каллбэк прилетел Приличные функции для этого принимают ещё один параметр, который и передают колбэку при вызове. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2012, 20:28 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFatherSqlНам нужно различать для какого вызова какой каллбэк прилетел Приличные функции для этого принимают ещё один параметр, который и передают колбэку при вызове. ну так то приличные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2012, 21:10 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSql, у тебя есть еще вопросы по теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 17:11 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
Давай спрашивай. Мы в форуме С++. Поэтому желательно подкреплять вопросы рабочими исходниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 17:47 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
вопрос в первом посте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 20:14 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSqlну так то приличные А авторам неприличных чистят морду лица пока не поумнеют. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 20:18 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSqlвопрос в первом постеКопирую свой вопрос из дубликата темы: "Что мы пишем - init или callback? Точнее, в каких пределах можно модифицировать первое и второе?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 21:41 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
AbstractionFatherSqlвопрос в первом постеКопирую свой вопрос из дубликата темы: "Что мы пишем - init или callback? Точнее, в каких пределах можно модифицировать первое и второе?" инит это библиотечная функция, каллбэк наш но с заданной сигнатурой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 01:28 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSql, и код - секретный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 01:42 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSqlвопрос в первом посте Функция с состоянием - это метод объекта. Тебе нужно заюзать ООП в явном (C++ class) или неявном виде. Если вычленить состояние невозможно то объявляй то на уровне кода требуй последовательного (синхронного) исполнения init и callback через третью функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 02:29 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSql, Принцип такой. Если надо запускать одновременно несколько асинхронных заданий, то значит должна быть организована очередь (список) этих заданий, в которую ваша init() кладет задания и из которой менеджер заданий их извлекает и выполняет по очереди (через цикл событий) или параллельно (через пул потоков). Каждый объект в очереди - это класс/структура содержащая в полях параметры задания и колбэк который нужно вызвать после выполнения задания, передав ему часть или все параметры а также результат, если он предусмотрен. По этим входным параметрам внутри колбэка а так же по самому колбэку (если например в качестве колбэка считать this экземпляра класса + адрес метода ) и будете определять к чему именно относится данный вызов. Как пример неплохо спроектированного интерфейса к такой библиотеке могу привести boost.asio: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 02:35 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
да, чтото про this забыл, но надо проверить можно ли передать метод класса функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 12:40 |
|
||
|
Различать каллбаки
|
|||
|---|---|---|---|
|
#18+
FatherSqlAbstractionпропущено... Копирую свой вопрос из дубликата темы: "Что мы пишем - init или callback? Точнее, в каких пределах можно модифицировать первое и второе?" инит это библиотечная функция, каллбэк наш но с заданной сигнатуройСредствами языка в нынешнем варианте - никак. Произошло три вызова init, затем три раза вызвали callback с одними и теми же аргументами. При любом порядке вызовов Ваш код увидит одну и ту же картину. Если выйти за пределы возможностей языка, в порядке бреда можно попытаться опереться на адрес вершины стека и сканировать стек, но у меня нет уверенности, что это способно сработать даже теоретически. Единственный выход, который я вижу - различные callback в каждом случае, тогда можно будет разобраться, опираясь на текущий адрес инструкции... но если количество вызовов init неизвестно на момент написания программы, это означает исполнение кода в динамически выделенной памяти, что могут зарезать разнообразные средства защиты от вирусов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 13:02 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=37999511&tid=2020757]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 536ms |

| 0 / 0 |
