Рефераты | Рефераты по информатике, программированию | Критические секции | страница реферата 13 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Если бы в примере не было переключения нитей, все вызовы произошли бы в нити объекта №1, и никаких проблем не возникло. Сильно надуманный пример? Ничуть. Именно переключение ниток лежит в основе подразделений (apartments) COM. А из этого следует одно очень, очень неприятное правило.

    СОВЕТ

    Избегайте вызовов каких бы то ни было объектов при захваченных критических секциях.

    Помните пример из начала статьи? Так вот, он абсолютно неприемлем в подобных случаях. Его придется переделать на что-то вроде примера, приведенного в листинге 12.

    Листинг 12. Простой пример, не подверженный самоблокировке.

    // Нить №1

    void Proc1()

    {

      m_lockObject.Lock();

      CComPtr<IObject> pObject(m_pObject); // вызов pObject->AddRef();

      m_lockObject.Unlock();

      if (pObject)

        pObject->SomeMethod();

    }


    Рекомендуем скачать другие рефераты по теме: реферат на экономическую тему, инновационная деятельность.



    Предыдущая страница реферата | 8  9  10  11  12  13  14  15  16  17  18 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •