c++ log processing method

queue<CString> q;
bool bStop = false;

UINT DemoA(LPVOID pParam)
{
	CStdioFile file;
	if (file.Open(_T("log.txt"), CFile::modeCreate | CFile::modeWrite | CFile::typeText))
	{
		while (!bStop)
		{
			if (!q.empty())
			{
				CString str = q.front();
				file.WriteString(str);
				file.WriteString(_T("\n"));
				file.Flush();
				q.pop();
			}

		}
	}
	file.Close();

	return 0;
}

//Start button

void CQueueDemoDlg::OnBnClickedButton1()
{
	bStop = false;
	AfxBeginThread(DemoA, NULL);

}

int i = 0;
//Add log
void CQueueDemoDlg::OnBnClickedButton3()
{
	CString str;
	str.Format(_T("%d"), i++);
	q.push(str);
}

//Stop button
void CQueueDemoDlg::OnBnClickedButton2()
{
	bStop = true;
}

 

Guess you like

Origin blog.csdn.net/dxm809/article/details/115253532