我试图在Windows C程序上使用线程,在Eclipse环境和Mingw上编译。与Mingw在Windows上使用pthread时出错
我也把-lpthread和-pthread放在编译命令上,并且包含在程序中。
我在适当的地方对我的逻辑进行了pthread_create(),pthread_cancel()和pthread_exit()的调用。
它总是按预期工作,但我的程序结束说
此应用程序已请求运行时终止它在 不寻常的方式。 有关更多信息,请联系应用程序的支持团队。
任何提示?我错过了什么吗?
更新
全局变量:
pthread_t thr;
里面的启动功能:
pthread_create(&thr,NULL,ThrFunc,NULL);
pthread_join(thr,NULL);
内ThrFunc:
while (TRUE)
{
// do something
if (some other thing occurs)
pthread_exit();
}
无法看到代码而告知 – nos
也许你正在释放g从它的启动函数返回之前,pthread的资源? – Neijwiert
“*调用'pthread_cancel()'*”让我感觉不舒服... – alk