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

Mar*_*mia 7 c winapi multithreading timer

我不知道如何在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 %d\n", 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;
}
Run Code Online (Sandbox Code Playgroud)

Red*_*met 4

以下是 WinAPI 线程的简单指南:
http://www.cs.rpi.edu/academics/courses/netprog/WindowsThreads.html(已存档)

话虽这么说,C 是一种简约语言,没有像 Java 那样的内置线程(也没有巨大的额外库)。它的目的是作为一种建立在其之上的通用语言。

在类 Unix 系统上,存在超出 ANSI/ISO 标准的系统范围标准 C 库,它们是 POSIX 标准的一部分,pthread 是 POSIX 线程。

Windows C 库是 MS 以自己的方式创造的。您可以使用提供多操作系统支持的框架,例如 GLib 或 Qt(Windows、Linux、其他 *nix)。还有一些端口和兼容层可以在 Windows 内使用 POSIX 设施。除了库之外,Cigwin 还为您提供了完整的 POSIX 环境,MinGW 编译器允许您在 Win32 层之上使用 POSIX 函数的端口。

像 GLib 和 Qt 这样的框架最适合让你的代码保持多平台,它们隐藏了操作系统的细节,允许更通用的方法。

GLib 是用于 GUI 开发的 GTK 库的一部分,Qt 也是一个 GUI 开发框架,但采用 C++ 语言。

  • 您的链接已损坏。 (7认同)