如何在windows系统上用c++创建多线程

在网上看了很多,不是很懂。求大神解答比如:设gotoxy可用我需要在(0,y)和(x,0)上,分别每100毫秒打印一个字符a函数1voidX(){for(intx=0;;... 在网上看了很多,不是很懂。求大神解答
比如:
设gotoxy可用
我需要在(0,y)和(x,0)上,分别每100毫秒打印一个字符a
函数1
void X(){
for(int x=0;;x++){
gotoxy(x,0);
cout<<"a";
}
函数2
void Y(){
for(int y=1;;y++){
gotoxy(0,y);
cout<<"a";
}
问题来了,
怎么让这两个函数同时进行?
求详细代码求详细注释
谢谢
展开
 我来答
百度网友96ffcf7
2015-04-03 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
DWORD WINAPI SumThread(LPVOID lp)//求和线程
{
int* sum=(int*)lp;
for(int i=1;i101;i++)
{
(*sum)+=i;
}
return 0;//线程返回
}
DWORD WINAPI MulThread(LPVOID lp)//求阶乘线程
{
int* mul=(int*)lp;
for(int i=1;i11;i++)
{
(*mul)*=i;
}
return 0;
}
DWORD WINAPI PrintThread(LPVOID lp)//打印线程
{
HANDLE handle ;
int sum=0 ;
int mul=1;
handle = CreateThread(NULL,NULL,SumThread,(LPVOID)sum,NULL,NULL);//创建求和线程
CloseHandle(handle);//关闭线程句柄
handle = CreateThread(NULL,NULL,MulThread,(LPVOID)mul,NULL,NULL);//创建求阶乘线程
CloseHandle(handle);//关闭线程句柄
printf(%d,sum);//打印和
printf(%d,mul);//打印阶乘
return 0;
}
void main()
{
HANDLE handle;
handle = CreateThread(NULL,NULL,PrintThread,NULL,NULL,NULL);
CloseHandle(handle);
}
chenjintaox
2015-04-03 · TA获得超过108个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:162万
展开全部
// TS2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <WINDOWS.H>
#include <PROCESS.H>
#include <IOSTREAM.H>

void gotoxy(int a, int b)
{
    cout<<"gotoxy関数実行成功!!!"<<endl;
}
//线程函数X
unsigned _stdcall X(void* pArg)
{
    for(int x=0;;x++)
    {
        gotoxy(x,0);
        cout<<"a";
    }
}
//线程函数Y
unsigned _stdcall Y(void* pArg)
{
    for(int y=1;;y++){
        gotoxy(0,y);
        cout<<"a";
    }
}

int main(int argc, char* argv[])
{
    HANDLE hThreads[2];
    unsigned threadID;
    //线程创建
    hThreads[0] = (HANDLE)_beginthreadex( NULL, 0, &X, NULL, 0, &threadID );
    hThreads[1] = (HANDLE)_beginthreadex( NULL, 0, &Y, NULL, 0, &threadID );

    //等待创建的线程执行完成后,main函数继续执行
    WaitForMultipleObjectsEx(sizeof(hThreads), hThreads, FALSE, INFINITE, FALSE);

    //线程资源释放
    CloseHandle(hThreads[0]);
    CloseHandle(hThreads[1]);
    return 0;
}
更多追问追答
追问
_stdcall和两个函数的参数是必要的吗?

main函数的参数是必要的吗?
追答
main函数参数可以不要,但是线程函数参数和前面的__stdcall是必须的。
你不要参数就可以直接用上面的代码,上面代码参数传NULL进去。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式