- 895 名前:デフォルトの名無しさん mailto:sage [2006/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(); }
|

|