国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

c++ - WINAPI關(guān)閉程序時(shí)調(diào)用SetConsoleHandler異常
僅有的幸福
僅有的幸福 2017-05-16 13:24:41
0
1
783

我寫了一個(gè)程序,用多線程獲得一些數(shù)據(jù),然后存入數(shù)組,然后當(dāng)我關(guān)閉這個(gè)控制臺(tái)程序的時(shí)候會(huì)觸發(fā)一個(gè)事件,然后我在這個(gè)事件里面把數(shù)組中的數(shù)據(jù)寫入文件。
但是當(dāng)我這個(gè)程序跑10分鐘以內(nèi)的時(shí)候?qū)懭胛募颊5模?0分鐘以上我關(guān)閉程序的時(shí)候會(huì)只輸出一些文件然后程序就自己關(guān)閉了。

下面是涉及到這些地方的代碼:
這是主函數(shù)中調(diào)用SetConsoleCtrlHandler

int main(char*argv[], int argc)
{
    //當(dāng)你關(guān)閉的時(shí)候做一些處理工作
    SetConsoleCtrlHandler(ConsoleHandler, TRUE);//接受控制臺(tái)消息,做一些清理工作 
    
    //其他工作
}

這是具體的函數(shù)實(shí)現(xiàn)

BOOL WINAPI ConsoleHandler(DWORD msgType)
{
    Print("I'm closing\n");
    if (msgType == CTRL_C_EVENT ||msgType == CTRL_CLOSE_EVENT)
    {
        if (g_hTDF)
        {
    
        WriteResult(str);//這里就是我把數(shù)組中的內(nèi)容寫入文件的程序

        Print("console Close complete!\n");
        system("pause");
        return TRUE;
    }
 
    return TRUE;
}

請(qǐng)問有沒有大神碰到過這個(gè)問題?
這個(gè)和緩沖區(qū)什么的有沒有關(guān)系呢?因?yàn)橹庇X來說,可能是時(shí)間長了導(dǎo)致接收的數(shù)據(jù)多了。

僅有的幸福
僅有的幸福

全部回復(fù)(1)
劉奇

CTRL_CLOSE_EVENT有超時(shí)機(jī)制,所以無論寫入數(shù)據(jù)要多久,程序都會(huì)在5秒之后關(guān)掉。
可以改用CTRL_C_EVENT。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板