이 코드를 실행하려고합니다.Visual Studio 2012의 C++ std :: thread 문제
BOOL genFunctionOne(std::vector <char> functionOneBuffer, int functionOneCharCount)
{
int lineCountTest = 0;
int characterCountTest = 0;
for (int i = 0; i < functionOneCharCount; i++)
{
if (functionOneBuffer[i] == '\n')
lineCountTest++;
characterCountTest++;
}
return FALSE;
}
이 호출을 사용하십시오.
std::thread funcThreadOne([&] { functionOne = genFunctionOne(functionBufferOne, functionCharCountOne); });
그리고 언제든지이 함수를 호출합니다. 나는
Microsoft Visual C++ Runtime Library
Debug Error!
Program:... my.exe
R6010
-abort() has been called
Please retry to debug the application.
브레이크 포인트 (Break Point)
는 if (rterrnum != _RT_CRNL && rterrnum != _RT_BANNER && rterrnum != _RT_CRT_NOTINIT)
{
switch (_CrtDbgReportW(_CRT_ERROR, NULL, 0, NULL, L"%s", error_text))
{
case 1: _CrtDbgBreak(); msgshown = 1; break;
case 0: msgshown = 1; break;
미리 감사에 의해 ... crt0msg.c 원인입니다 .. 얻는다.
나는 실제로 동일한 프로그램에서 다른 스레드 호출을 실행하려고했지만 운이 없었습니다. 그것은 내 컴파일러 일 수 있습니다. #include를 사용하여 빌드 옵션에서 링크해야하는 라이브러리가 있습니까?
'std :: vector'가 사용되는 이유는 무엇입니까? 'size()'함수가 있습니다. – chris
릴리스 모드에서도 발생합니까? – 4pie0
@ cf16 릴리스 모드에서 시도하지 않았 으면 좋겠지 만 나중에 다시 시도해 볼 수 있습니다. – LightKeep