warning C6258: using TerminateThread does not allow proper thread clean up
This warning indicates that a call to TerminateThread has been detected.
TerminateThread is a dangerous function that should only be used in the most extreme cases. For more information about problems associated with TerminateThread call, see TerminateThread.
To properly terminate threads
Create an event object using the CreateEvent function.
Create the threads.
Each thread monitors the event state by calling the WaitForSingleObject function.
Each thread ends its own execution when the event is set to the signaled state (WaitForSingleObject returns WAIT_OBJECT_0).