关于curses多线程界面开发问题?

greenwillow280
关于curses多线程界面开发问题?

我写了个程序
在main里起了一个子线程作为处理内容的输出线程,里面是个循环。
主线作为输入处理线程,为什么会出现花屏?
下面是我的部分程序
void omsShow( threadData *param)
{
   extern  WINDOW   *gbCurWin;
   int     iLen;
   ssize_t  n;
   char sBuff[1024+1];
   char sTmp[1024+1];
   char *pLine;
   while((n=read(param->iReadFd,sBuff,1024))>0)//iReadFd是管道
   {

      waddstr(param->pWinMain,sBuff);
      wrefresh(param->pWinMain);
      memset(sBuff,0x00,sizeof(sBuff));
      wrefresh(gbCurWin);
      touchwin(gbCurWin);
      usleep(100);
   }
}

main()
{
.......
   param.iReadFd=iReadFd;
   param.pWinMain=pWinMain;
   pthread_create(&tid,NULL,omsShow,(void *)&param);
........
   while((iCmdStr=ShTextBox(&cmdBox))=='/r'||iCmdStr==PAD_F(0)||iCmdStr==PAD_F(1)||iCmdStr==PAD_F(5))
   {
         write(iWriteFd, "file",4);//iWriteFd是管道
         write(iWriteFd,sCmdStr,strlen(sCmdStr));
         通过管道发数据到另一个进程处理,通过管道在上面的omsShow接收数据然后显示出来.
   }
}


ShTextBox是我自己写的一个文本框,用来输入命令

[[i] 本帖最后由 greenwillow280 于 2008-6-19 21:40 编辑 [/i]]

mafiaguy
回复 #1 greenwillow280 的帖子

>>主线作为输入处理线程,为什么会出现花屏?

   不清楚你描述的花屏是怎么样子的情况?