在这篇文章中,我们会为大家详细推出C++ CreateThread参数的具体应用方法,以帮助大家能够从中获得一些帮助,提高编程效率。那么接下来就让我们一起来看看C++ CreateThread参数的正确使用方法吧。
& F- U3 _) c. t+ U 项目是VS2003下的,用到了CreateThread函数,看到网上说不应该调用CreateThread,而应该使用_beginthreadex。因为刚好用到了,就还是写一下CreateThread中参数的使用方法。$ B$ W0 N3 g" T8 T! h
先定义要传递的C++ CreateThread参数结构体:4 k1 H+ k; I8 p: [' d& d: t/ `
typedef struct SParam3 x, y8 I% p+ g1 d5 f9 ~& p
{% S, A2 i9 \2 n8 X- [
int No;7 w3 y C! t: r$ R
unsigned short chnlID;# I! K; P% ]3 ]" a
unsigned short sessionID;
. G6 U4 ?2 d. {0 r/ K. K; i8 o }
9 q# r$ D& e& g! S' ~( l- | uParam,*sParam;
7 s- F+ j8 {9 n( s8 v DWORD WINAPI AccountManager- b( E$ r) U) a9 P/ _5 |4 m* M
(PVOID pParam);7 i+ u3 J& G0 r/ k" t
void main()
0 ^6 y) h2 x( R; e, ? \, u! t1 c { DWORD dwThreadId;
! l2 L; ]* S2 `0 A) U HANDLE hThrd = NULL;
: M* E. Z0 S3 ]$ M" I0 z // thread handle SParam sparam;! j* k9 U9 f0 P
SParam *p; sparam.No = 1;
$ z2 m9 Y2 p' h+ ~' H1 ^- z sparam.chnlID = 1;4 o: f# l& U8 K" I2 L7 j
sparam.sessionID = 1;
+ C; I7 `* ~1 F8 i! U6 l, j p = &sparam;9 L L! w2 m l5 a& X
hThrd = (HANDLE)CreateThread(NULL, 0, AccountManager, p, 0, dwThreadId;5 F2 s4 B4 m! Y
}& ]% {# l$ }7 f: R
DWORD WINAPI AccountManager(PVOID pParam) G1 `3 {' K9 k; V8 A* l1 G
{ sParam sparam;
5 {% U5 \/ l+ s0 s sparam = (sParam)pParam;
# E3 N% I: g; ?# b7 n5 `; q try
$ T/ H c2 n; P; _- j* f, `$ e" T { /*Run为自己写的一个方法,Run(int i,unsigned short chnlID,unsigned short sessionID)*// R. B; B4 M$ r: \/ y" |3 c
Run(sparam->No,sparam->chnlID,sparam->sessionID);1 T5 a3 C+ B1 `. \+ U" L
} catch (...)- U, |, ~% b# h1 E2 y7 X
{ logger.error("AccountManager(%d): System error.\r\n", threadId);6 k. y6 Y% |* K+ N- r4 }
}* f, \ F9 V% \3 ]1 w
}; K" E* ]1 z9 g: r9 S' C
大体意思是这样,C++ CreateThread参数代码仅供参考。 |