, ( void) ( void*). , _beginthreadNT, _ endthread().
, , 4096.
arglist , NULL.
security_attrib , WindowsNT. NULL.
flag , CREATE_SUSPENDED. ( ) - .
. -1, , HANDLE.
.
#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <conio.h>
char lbuk[]=abcdefghijklmnoprqstuwxy;
void procthread1(void *arg)
{ int k,j;
for (k=0;k<24;k++)
{ gotoxy(20,k+1);
textcolor(LIGHTBLUE);
for (j=0;j<(int)arg;j++)
cprinf(%c,lbuk[k]);
}
}
void procthread2(void *arg)
{ int k,j;
for (k=0;k<24;k++)
{ gotoxy(40,k+1);
textcolor(LIGHTGREEN);
for (j=0;j<(int)arg;j++)
cprinf(%c,lbuk[k]);
}
}
void procthread3(void *arg)
{ int k,j;
for (k=0;k<24;k++)
{ gotoxy(60,k+1);
textcolor(RED);
for (j=0;j<(int)arg;j++)
cprinf(%c,lbuk[k]);
}
}
void main()
{ HANDLE hthread1,hthread2,hthread3;
unsigned long threadid1,threadid2,threadid3;
int k;
hthread1=(HANDLE)_beginthreadNT(procthread1,4096,(void *)2,NULL,0,&threadid1);
hthread2=(HANDLE)_beginthreadNT(procthread2,4096,(void *)3,NULL,0,&threadid2);
hthread3=(HANDLE)_beginthreadNT(procthread3,4096,(void *)4,NULL,0,&threadid3);
for (k=0;k<24;k++)
{ gotoxy(1,k+1);
textcolor(WHITE);
for (j=0;j<(int)arg;j++)
cprinf(%c,lbuk[k]);
}
getchar();
CloseHandle(hthread1);
CloseHandle(hthread2);
CloseHandle(hthread3);
}
Windows TerminateThread, :
BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode).
, .
, TerminateThread, GetExitCodeThread :
|
|
BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode).
, hThread , STILL_ACTIVE .
ExitThread,
Void ExitThread(DWORD dwExitCode).
:
1. MS Windows.
2. .
- 1. - .
. | : WINDOWS, . |
N, N |
- 2.
. | : WINDOWS, . |
, , - |
- 3.
. | : WINDOWS, . |
20 |
- 4.
: , ( ), *. , Hello, User. (. ) .
. | ||||
+a | +b | +c | ||
Shift | LeftAlt | [S] [C] Alt | Alt+Q |
[C] - CapsLock;
[N] - NumLock;
[S] - ScrollLock.