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

1 秒間に 5 回画面をクリアしているように思えますが、画面が点滅するのも不思議ではありません。

とにかく、UI フレームワークをどこでも使用するのと同じ慣行を維持するのが最善です。つまり、UI を 1 つのスレッドに維持します。

于 2012-06-10T20:13:34.403 に答える