A user-interface thread is a thread that has its own message loop. You would derive a class from CWinThread, then use the overloaded version of AfxBeginThread() to launch the thread.