スレッドに「1」を 3 秒間書き込むプログラムを作成しました。しかし、コントロールの出力をデバッグまたは追加しようとすると、スレッドが作成されないことが多いことに気付きます (コンソールに出力がなく、デバッグ ポイントの成果もありません)。の戻り値を確認するとCreateThread()
OKです。I/O用のログインファイルについて読みましたが、必要ないと思います。2 つのスレッドを持つプログラムが必要です。1 つは「1」を 3 秒間書き込み、2 番目は「2」を 3 秒間書き込みます。次に、結果を比較します。入力ファイルに「1」と「2」が混在していても構いません。
#include <iostream>
#include <fstream>
#include <windows.h>
#include <stdio.h>
#include <WinBase.h>
#include <ctime>
#define NTHREAD 2
std::ofstream myfile;
DWORD WINAPI fce1 (LPVOID a){
time_t timerStart, timerNow;
time(&timerStart);
timerNow = timerStart;
while((timerNow - timerStart) < 3)
{
myfile << "1";
myfile.flush();
time(&timerNow);
}
return 0;
}
int main()
{
HANDLE threads[NTHREAD];
DWORD dwThreads[NTHREAD];
myfile.open("file.txt");
threads[0] = CreateThread(NULL, 0, fce1, NULL, 0, &dwThreads[0]);
if (threads[0] == NULL){
printf("Error\n");
}
myfile.close();
return 0;
}