This folder contains examples for the use of the threading-related classes
in Qt Core. For examples using the higher-level Qt Concurrent module,
check out the "qtconcurrent" folder instead.

Documentation for examples can be found via the Examples and Tutorials link
in the main Qt documentation. The examples and their documentation can also
be opened from the Examples tab of Qt Creator's Welcome mode.
