Поделиться через


Рекомендации по com и автоматизации потоков

Ниже приведены рекомендации по потоковой работе с планшетным компьютером, которые относятся к использованию модели COM и автоматизации.

Потокобезопасность

За исключением элементов управления InkPicture и InkEdit , объекты планшетного пк являются потокобезопасны и помечены как оба. Если они помечены как оба, они могут работать в однопотоковом объекте (STA) или многопоточном (MTA).

Windows Forms использует модель STA, так как windows forms основаны на собственных окнах Win32, которые по своей сути являются потоками подразделения.

Приложения STA и MTA

Если приложение выполняется в MTA или использует свободный потоковый маршалер (FTM), необходимо написать потокобезопасный код; тем не менее, это позволяет улучшить некоторые проблемы с производительностью обработки событий.

InkCollector и InkOverlay

Приложение не должно выпускать окончательную ссылку на объект InkCollector или InkOverlay , таким образом уничтожая объект непосредственно из потока рукописного ввода. Вместо этого приложение должно освободить объект InkCollector или InkOverlay из потока приложения.

Осторожностью: Приложение, помеченное как MTA или использующее FTM, которое разрешает прямые вызовы из потока рукописного ввода в квартиру приложения, может освободить свою окончательную ссылку на объект InkCollector или InkOverlay непосредственно из потока рукописного ввода; однако это приводит к неустранимому сбою приложения.

Приемники событий

Если приложение не использует FTM и объект и его приемник событий создаются в разных помещениях, то событие выполняется в потоке, обслуживаемом приемником событий.

Исключения в обработчиках событий

Исключения, создаваемые из обработчиков событий планшетного компьютера, используются и не видны остальным пользователям или приложению. Аналогичным образом значения HRESULT не распространяются из обработчиков событий планшетного ПК. Если приложение, использующее уровень COM, создает исключение, фоновый поток завершается, и исключение будет потеряно. Дополнительные обработчики событий вызываться не будут.

Пример приемников событий C++

Общие рекомендации по потоковой работе

Рекомендации по потоковой работе с управляемой библиотекой