比如在在Fn函数中调用PostMessage,而在MainWndProc函数中处理消息:
void Fn()
{
......
PostMessage(参数);
FncPrint();
......
}
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
......
switch (message)
{
case WM_PAINT:
....
case WM_DESTROY: // 正在销毁窗口
......
case xxx:
…
不是在两个线程里的。。是在一个线程中。。。
他们的不同在于:一个线程中的函数有可能在没有执行完的情况下而被中止,转向执行另一个线程中的代码。。。
1
2
3
4
5
6
7
8
9
10
11
|
//thread 1
void
a()
{
//执行中有可能被中断而去执行 thread2 中的 b() 函数
}
//thread 2
void
b()
{
}
|
同一个线程中的函数,其执行顺序有可能不同,但是,同一个线程中的函数都会被完全执行以后,才会执行另一个:
1
2
3
4
5
6
7
8
9
|
//thread 1:
void
a();
void
b();
main()
{
a();
//a函数完全执行以后才会执行b函数
b();
}
|
你所说的这两个函数,处于同一个线程: