By doing this inside of your independent thread:
pTab->ReadData(abBuffer, szTimestamp, numBytesRead);
and this is what you said you're doing in there:
void MyApp::ReadData(byte bytesRead [], char* timestamp, int bytesread)
{
}
You're still tying in your worker thread and your GUI (not independent). There's no separation, that's why your GUI gets hung up. Your worker thread should never access GUI components directly within it.