06/08/28 20:39:11
環境はWindowsです。
メインスレッドで生成されたWindowから、別スレッドを起動します。
このスレッドは、ファイルを1行づつ読み、
vector<string>に50件溜まったら、Windowへ通知します。
とりあえず下のような感じで組んだのですが、
Windowsが閉じられた場合、このスレッドを破棄しないといけません。
もしスレッドを破棄したらNetFileReaderのオブジェクトって、
解放されないのですよね。
こういうプログラムって、どうやって組むのが良いでしょう?
static vector<string> text;
void NetwordThread::execute(void* pData) {
MyWindow* win = (MyWindow*)pData;
NetFileReader* reader = new NetFileReader("hoge.txt");
string* line;
while ((line = reader->readLine()) != NULL) {
text.push_back(*line);
if (text.size() > 50) {
SendMessage(win->m_hWnd, WM_MY_MESSAGE, NULL, (LPARAM)&text);
text.clear();
Sleep(10);
}
SendMessage(win->m_hWnd, WM_MY_MESSAGE, NULL, (LPARAM)&text);
text.clear();
_endthread();
}