【发布时间】:2015-06-11 05:43:59
【问题描述】:
在下面的代码中,启动了一个调用网络嗅探器的线程,其输出显示在控制台上。 1500 毫秒后,我希望线程终止,但事实并非如此。你能提供关于我的错误的见解吗?提前感谢您的帮助。
unsigned int __stdcall mythreadB(void* data)
{
// declare
char *Directory = "c:/Program Files/Wireshark";
int Ret = 0;
string Tshark_Command = "";
Ret = _chdir(Directory);
Tshark_Command = "tshark\ -V -B 5";
system(Tshark_Command.c_str());
return 0;
}
int main(int argc, char* argv[])
{
HANDLE myhandleB;
myhandleB = (HANDLE)_beginthreadex(0, 0, &mythreadB, 0, 0, 0);
WaitForSingleObjectEx(myhandleB, 1500,false);
CloseHandle(myhandleB);
return 0;
}
【问题讨论】:
-
首先,您应该检查每个系统调用返回的内容。如果它返回错误,您应该check what that error is。
标签: c++ windows multithreading