Thread affinity of user interface objects, part 3: Menus, icons, cursors, and accelerator tables
The remaining user interface objects in common use
are menus, icons, cursors, and accelerator tables.
Menus do not have thread affinity.
Any thread can use a menu.
However, if two threads use a menu,
it is the responsibility of those threads
to coordinate among themselves how that menu will be used,
so that one thread doesn't modify a menu while another is busy
displaying it, for example.
(More on this subject later.)
Icons, cursors, and accelerator tables behave like menus.
They do not have thread affinity.
They are easier to manage than menus since they cannot be
modified once created, so the only thing you have to worry
about is not to use one after it has been destroyed.
Next time, GDI objects and an expansion on the subject of
thread safety.