• 7346阅读
  • 6回复

按钮点击事件的处理代码,按钮点击之后,窗口卡住无反应,webserv(qtac,qtav)任能正常工作。 [复制链接]

上一主题 下一主题
离线genfuguixiu
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-24
void Form1::run()
{
    const char *qtav[4];
    QString cmd2=lineEdit2->text();
    QString cmd3=lineEdit3->text();
    QString cmd4=lineEdit4->text();
    qtav[0]=0;
    qtav[1]=cmd2.latin1();
    qtav[2]=cmd3.latin1();
    qtav[3]=cmd4.latin1();  
    int qtac=4;
    webserv(qtac,qtav);  //run the webserv    
}
按钮点击事件的处理代码,按钮点击之后,窗口卡住无反应,webserv(qtac,qtav)任能正常工作。webserv()是一个web服务器,在浏览器能正常访问。
请问窗体如何恢复控制?
离线wd007

只看该作者 1楼 发表于: 2010-05-24
打断点调试,能看到什么?
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线genfuguixiu
只看该作者 2楼 发表于: 2010-05-25
回 1楼(wd007) 的帖子
我这样处理之后,窗口不会卡住,但服务器还在运行,请问如何处理啊?
void Form1::run()
{
     if(fork()==0)
     {
        const char *av[4];
        QString cmd2=lineEdit2->text();
        QString cmd3=lineEdit3->text();
        QString cmd4=lineEdit4->text();
        QString cmd4=lineEdit4->text();

        av[1]=cmd2.latin1();
        av[2]=cmd3.latin1();
        av[3]=cmd4.latin1();  
        int ac=4;
       webserv(ac,av);  //run the webserv
      }
  
}
离线dbzhang800

只看该作者 3楼 发表于: 2010-05-25
Re:回 1楼(wd007) 的帖子
引用第2楼genfuguixiu于2010-05-25 12:55发表的 回 1楼(wd007) 的帖子 :
我这样处理之后,窗口不会卡住,但服务器还在运行,请问如何处理啊?
void Form1::run()
{
     if(fork()==0)
     {
.......


你想问什么问题呢?

离线wd007

只看该作者 4楼 发表于: 2010-05-25
没错,楼上说的也是我想问的。

“我这样处理之后,窗口不会卡住,但服务器还在运行,请问如何处理啊?”
是什么意思?

我是说你可以调试看看什么情况,再下结论。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线dbzhang800

只看该作者 5楼 发表于: 2010-05-25
web 服务器本身是个死循环。
先前楼主将死循环放入主线程,ui必然无相应。
然后楼主开进程执行死循环,ui不受影响。所以不清楚楼主想处理什么
离线genfuguixiu
只看该作者 6楼 发表于: 2010-05-26
对不起,没表达清楚,我的意思是如何解决从死循环里退出来。
快速回复
限100 字节
 
上一个 下一个