多线程error C3867: 函数调用缺少参数列表问题解决办法:

今天比照http://www.vckbase.com/index.php/wv/1414.html中的教程,用MFC创建工作者线程,
CWinThread* pTimerThread = AfxBeginThread(Timer,(void*)(&pThreadPara[0]));
其中Timer函数声明为:UINT Timer(LPVOID lpParameter);
pThreadPara为指向结构体的数组的指针


结果却出现了error C3867: Timer函数调用缺少参数列表。


解决方法:
1、在将Timer的函数声明为static UINT Timer(LPVOID lpParameter);
2、将 UINT Timer(LPVOID lpParameter);声明为全局函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,可以使用线程库来创建多线程并运行一个函数。同时,可以通过在函数中使用全局变量或信号量等机制来控制线程的关闭和退出进程。 下面是一个示例代码,其中创建了一个新的线程,运行名为`myThreadFunc`的函数,并在函数中增加了一个全局变量`g_isRunning`来控制线程的退出: ```c #include <stdio.h> #include <stdlib.h> #include <pthread.h> int g_isRunning = 1; void* myThreadFunc(void* arg) { while (g_isRunning) { // 线程运行的代码 printf("This is a running thread.\n"); } printf("Thread is exiting...\n"); pthread_exit(NULL); } int main() { pthread_t myThread; int ret = pthread_create(&myThread, NULL, myThreadFunc, NULL); if (ret != 0) { printf("Error: Failed to create thread.\n"); exit(EXIT_FAILURE); } // 主线程执行的代码 printf("Main thread is running...\n"); // 等待一段时间后关闭线程 sleep(5); g_isRunning = 0; // 等待线程退出 pthread_join(myThread, NULL); printf("All threads are exited.\n"); // 退出进程 exit(EXIT_SUCCESS); } ``` 在上面的代码中,首先创建了一个新的线程,并将`myThreadFunc`函数作为线程的入口点。在`myThreadFunc`函数中,使用了一个循环来持续执行线程的代码,同时判断全局变量`g_isRunning`的值来控制线程的退出。在`main`函数中,输出了一条信息表示主线程正在运行,并在等待5秒后将`g_isRunning`设置为0来关闭线程。最后,使用`pthread_join`函数等待线程退出,并输出一条消息表示所有线程都已退出。最后,调用`exit`函数来结束进程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值