状态菜单使用线程

时间:2018-06-16 13:26:43

标签: c multithreading winapi

我正在编写我的应用程序,我需要一个状态菜单,显示验证功能的当前状态。验证功能是CPU很重,需要工作,所以我不能一直打印我的状态。目前这是我的代码:

HANDLE t = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)thread_test, 0, 0, 0);
int c;
while (true)
{
    printf("[s]tatus, [e]xit => ");
    c = getch();
    putchar(c);
    if (c == 's') {
        putchar('\n');
        is_visible = true;
    }
    else if (c == 'e')
        ExitProcess(0);
    else putchar('\n');
}

这是thread_test()的代码:

bool is_visible = false;
void thread_test() {
    while (true) {
        if (is_visible == true) printf("This is status.\n");
    }
}

现在我如何让thread_test()功能只显示此消息一次然后继续而不显示任何内容?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如何让thread_test()函数只显示此消息一次然后继续而不显示任何内容?

建议更换:

if (is_visible == true) printf("This is status.\n"); 

if ( is_visible ) 
{ 
    printf( "This is status.\n" ); 
    is_visible = false; 
}