MFc调用 _popen()函数,打开外部程序后,界面假死,该如何解决

MFc调用 _popen()函数,打开外部程序后,界面假死
MFc调用 _popen()函数,打开外部程序后,界面假死
代码如下:

void Gnuplot::init()
{
    m_sGNUPlotFileName = "pgnuplot.exe";
    if (!this->get_program_path(m_sGNUPlotFileName))
    {
        this->valid = false;
        throw GnuplotException("Can't find gnuplot in your PATH");
    }
    
    this->gnucmd = _popen(m_sGNUPlotFileName.c_str(),"w");
    if (!this->gnucmd)
    {
        this->valid = false;
        throw GnuplotException("Couldn't open connection to gnuplot");
    }
    this->nplots = 0;
    this->valid = true;
}


请问如何不改动这种方法(_popen())的情况下,使得mfc界面不假死
------解决思路----------------------
首先你要判断是因为什么造成的界面假死,如果代码没有问题,那么就把这段代码写在另外一个线程里
------解决思路----------------------
用ShellExecute等其他API呢。