This page was last modified 07:25, 14 July 2007.
Активные объекты - часто встречающиеся ошибки реализации
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
Самая распространенная проблема при использовании активных объектов - это паника (E32USER-CBASE 46, stray-event panic), генерируемая планировщиком активных объектов (Active Scheduler). Причиной паники могут быть следующие ошибки:
- Не вызван метод CActiveScheduler::Add() перед началом использования активного объекта.
- Не вызван метод SetActive() после активации асинхронного запроса.
- Ссылка на одну и ту же переменную iStatus передается сразу нескольким сервис-провайдерам (попытка выполнить несколько запросов одним активным объектом одновременно).
Метод DoCancel() не должен вызываться непосредственно - он должен быть закрытым, вместо него нужно вызывать метод Cancel(). Метод Cancel() всегда должен вызываться в деструкторе активного объекта.
Кроме того, часто встречаются следующие ошибки (приводят к другим паникам):
- Используется своя собственная TRequestStatus переменная, вместо той, которая принадлежит активному объекту (объявлена в классе CActive).
- В качестве параметров передаются локальные переменные при активации асинхронного запроса.
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Ошибка компилятора ARMV5? | Space_monkey | Russian Developer Forum - Форум Российских разработчиков | 11 | 2008-05-30 06:15 |
| Проблема запуска на эмуляторе | LuckyBeaver | Russian Developer Forum - Форум Российских разработчиков | 17 | 2007-12-11 14:45 |
| Forum Nokia Wiki (русскоязычный портал) - Ваши пожелания | Ecconaut | Russian Developer Forum - Форум Российских разработчиков | 27 | 2008-04-15 19:50 |
| Присоединение MBM файлов | LuckyBeaver | Russian Developer Forum - Форум Российских разработчиков | 7 | 2008-01-20 11:17 |
| проблемма с E32Dll(TDllReason) | Sergey_m | Russian Developer Forum - Форум Российских разработчиков | 25 | 2008-03-04 13:36 |
