关于线程函数解决方法
关于线程函数 - C++ Builder / Windows SDK/API
请教一下,如何在开启线程之后变更该线程要运行的线程函数?
------解决方案--------------------
这个可以么???
------解决方案--------------------
如果可以程序不就乱了吗?
------解决方案--------------------
一般是先指向一个固定函数,在这个函数内再调用一个函数指针,这个函数指针可以进行修改成其它函数。
线程池都是这么用的。
------解决方案--------------------
线程池
------解决方案--------------------
给你个思路可以用回调函数,要改变函数的时候注入一个新的回调。
------解决方案--------------------
修改线程函数?
如果想实现不同功能的话,用PostThreadMessage就行了
线程函数中写个消息循环
MSG msg;
while(1)
{
if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
{
if(GetMessage( &msg, NULL, 0, 0 ) )
{
if (msg.message == WM_USER + 1)
func1();
else if (msg.message == WM_USER + 2)
func2();
根据不同的msg调用不同的函数就行了
请教一下,如何在开启线程之后变更该线程要运行的线程函数?
------解决方案--------------------
这个可以么???
------解决方案--------------------
如果可以程序不就乱了吗?
------解决方案--------------------
一般是先指向一个固定函数,在这个函数内再调用一个函数指针,这个函数指针可以进行修改成其它函数。
线程池都是这么用的。
------解决方案--------------------
线程池
------解决方案--------------------
给你个思路可以用回调函数,要改变函数的时候注入一个新的回调。
------解决方案--------------------
修改线程函数?
如果想实现不同功能的话,用PostThreadMessage就行了
线程函数中写个消息循环
MSG msg;
while(1)
{
if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
{
if(GetMessage( &msg, NULL, 0, 0 ) )
{
if (msg.message == WM_USER + 1)
func1();
else if (msg.message == WM_USER + 2)
func2();
根据不同的msg调用不同的函数就行了