0

我不得不使用 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);
  }
}
4

1 回答 1

0

好吧,在我看来,您每秒清除屏幕 5 次,难怪它会闪烁。

无论如何,最好在任何地方都使用相同的实践 UI 框架 - 将您的 UI 保持在一个线程中。

于 2012-06-10T20:13:34.403 回答