我不得不使用针对Linux终端的ncurses库编写一些带有多线程文本的程序。我尝试像下面显示的那样做,但它工作得很糟糕。你对如何组织好工作有什么想法吗?
#include <panel.h>
#include <pthread.h>
int main()
{
pthread_t t_out[5];
for(i=1; i<13; i++)
pthread_create(&t_out[i],NULL,&text_out,&i);
pthread_t refr[5];
pthread_create(&t_out[i],NULL,&refresh_all,NULL);
}
void text_out(void *coord)
{
int x = *(int *)coord;
int i;
for(i=1; i<10; i++)
{
move(i,x);
printw("*");
sleep(1);
}
}
void refresh_all()
{
while(1)
{
clear();
refresh();
sleep(1);
}
}
答案 0 :(得分:0)
好吧,在我看来,你每秒清理屏幕5次,难怪它会眨眼。
无论如何,最好在各地使用相同的练习UI框架 - 将UI保存在一个线程中。