在按钮上启动一个线程

时间:2010-12-05 08:18:19

标签: c++ multithreading

我如何确保在按钮上只创建一个线程而不会意外地双击?

2 个答案:

答案 0 :(得分:0)

你在谈论Windows编程吗? 我对此不太熟悉,但你应该抓住WM_LBUTTONDOWN消息(或双击)并将一些bool标志设置为TRUE。如果此标志为TRUE,您只需要创建线程。它必须初始化为cource的FALSE。

答案 1 :(得分:0)

以下代码应该这样做(在win32下)......

EnterCriticalSection( &critSec );
if ( ghThread != INVALID_HANDLE_VALUE )
{
    ghThread    = ::CreateThread( NULL, stackSize, (LPTHREAD_START_ROUTINE)ThreadEntry, NULL, 0, NULL );
}
LeaveCriticalSection( &critSec );

这当然假设您事先将ghThread HANDLE初始化为INVALID_HANDLE_VALUE。