Java is a free-threaded environment. This means that any object can call any other object, at any time, from any thread. Special care must be taken when writing objects so that their methods are atomic and thread safe.
There are several classes that benefit from being free-threaded, and WFC has provided the locking code to make these objects thread-safe. These classes are as follows:
Comparatively, any object that derives from com.ms.wfc.ui.Control is apartment-threaded because of the Win32 window that is linked to each control. Additionally, most other objects in the com.ms.wfc.ui package are not synchronized; they should also be considered to be apartment threaded. Likewise, the com.ms.wfc.io, com.ms.wfc.html, and com.ms.wfc.util packages are not thread-safe.