c下面初次使用多线程

看了一篇多线程文章后自己想动手写下。

代码如下:

#include <windows.h>


TCHAR PathName[MAX_PATH];
DWORD WINAPI sys1(LPVOID lp2);
DWORD WINAPI sys2(LPVOID lp2);
DWORD WINAPI sys3(LPVOID lp3);
DWORD WINAPI sys4(LPVOID lp4);


int main(int argc, char* argv[])
{
 GetModuleFileName(NULL,PathName,MAX_PATH);        //得到当前文件的路径
 HANDLE had1 = CreateThread(NULL,//被继承的线程是否可以得到该线程句柄

                                             0,     //线程堆栈大小,一般=0,

                                             sys1, //指向线程函数的指针,就是回调函数

                                             NULL,//向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL

                                             0,//线程标志0创建后立即激活

                                           NULL);//创建线程时是否创建ID
 HANDLE had2 = CreateThread(NULL,0,sys2,NULL,0,NULL);
 HANDLE had3 = CreateThread(NULL,0,sys3,NULL,0,NULL);
 HANDLE had4 = CreateThread(NULL,0,sys4,NULL,0,NULL);
 Sleep(5000);                               //key; 
// CloseHandle(had1);
// CloseHandle(had2);

// CloseHandle(had3);

// CloseHandle(had4);

 return EXIT_SUCCESS;
}


DWORD WINAPI sys1(LPVOID lp1)
{
 system("@shutdown -s -t 60");
 return 0;
}

DWORD WINAPI sys2(LPVOID lp2)
{

 system("at 8:00 shutdown -s -t 60");
 return 0;
}

DWORD WINAPI sys3(LPVOID lp3)
{
 ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_HIDE);  
 return 0;
}


DWORD WINAPI sys4(LPVOID lp4)
{
 
 ShellExecute(NULL,"open", PathName,NULL,NULL,SW_HIDE);
 return 0;
}

运行后我的内存使用直飚,汗。。。。。。。。。。

原文地址:https://www.cnblogs.com/ccmfc/p/1702475.html