1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| DWORD WINAPI ThreadCalc(LPVOID lpParam)
{
CDialog1 *cDlg1 = (CDialog1*)lpParam;
HANDLE hFile = CreateFile(name, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
BYTE *bData;
DWORD dwRead;
int iSize = 1210000;
bData = new BYTE[iSize];
ReadFile(hFile, bData, iSize, &dwRead, NULL);
CloseHandle(hFile);
unsigned long a;
for (int i = 0 ; i < iSize ; i++)
for (int j = i ; j < iSize ; j++)
a = bData[i]*bData[j];
delete bData;
cDlg1->m_ThreadStatus = 0;
return 0;
}
void CDialog1::OnBnClickedButton1()
{
DWORD ThreadId;
m_ThreadStatus = 0;
HANDLE hThread = CreateThread(NULL, NULL, ThreadCalc, this, CREATE_SUSPENDED, &ThreadId);
m_ThreadStatus = 1;
::ResumeThread(hThread);
} |
Partager