加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C中为Windows创建多线程?

发布时间:2020-12-16 03:17:11 所属栏目:百科 来源:网络整理
导读:我不知道如何在C中创建线程,我看到了关于pthread.h库的评论,但后来我听说它仅适用于 Linux操作系统,我有一个函数,它是一个计时器,我想用这个函数创建一个线程但是我不知道我需要使用的库和语法编写代码,如果有人可以提供一个简单的代码与线程,或告诉我我需要
我不知道如何在C中创建线程,我看到了关于pthread.h库的评论,但后来我听说它仅适用于 Linux操作系统,我有一个函数,它是一个计时器,我想用这个函数创建一个线程但是我不知道我需要使用的库和语法编写代码,如果有人可以提供一个简单的代码与线程,或告诉我我需要放什么东西和函数的参数.

这是我创建倒计时用户申请的具体时间的功能:
我需要用该函数创建一个线程.

功能(倒计时):

#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void countdown(int second)
{
    int secs = 1;
    time_t unix;
    struct tm * timeinfo;
    time(&unix);
    timeinfo = localtime(&unix);
    int t1 = timeinfo->tm_sec;
    int t2 = timeinfo->tm_sec;
    int i = 0;

    while(1 == 1)
    {
       time(&unix);
       timeinfo = localtime(&unix);
       if((t1 + i)  == timeinfo->tm_sec)
       {
              system("cls");
              printf("Time left %dn",timeinfo->tm_sec - t2 - second);
              i++;
       }
       if(timeinfo->tm_sec >= (t1 + second))
       {
           system("cls");
           puts("Your time its done");
           break;
       }

    }
}

int main()
{
    int limit;
    printf("How much time would you like (In secs): ");
    scanf("%d",&limit);
    countdown(limit);

    system("PAUSE");
    return 0;
}

解决方法

这是一个简单的winapi线程指南
http://www.cs.rpi.edu/academics/courses/netprog/WindowsThreads.html

话虽这么说,C是一种简约语言,没有像java这样的内置线程(也没有庞大的额外库).它是作为一种通用语言建立在它之上.在类Unix系统上,有超出ANSI / ISO标准的系统范围标准c库,它们是posix标准的一部分,pthread是posix-threads. Windows C库是MS以自己的方式做事.您可以使用提供多操作系统支持的框架,如glib或qt(Windows,Linux,其他* nix).还有端口和兼容层可以在windows中使用posix工具.除了库之外,Cigwin还为您提供了完整的posix环境.MinGW编译器允许您在win32层之上使用posix函数的端口.

像glib和qt这样的框架最好保持代码多平台,它们隐藏了操作系统细节,允许更通用的方法.

glib是用于GUI开发的GTK库的一部分,QT也是一个GUI开发框架,但在C语言中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读