• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何調用async進行異步操作

    C++11尺度供給函數async,用于異步啟動線程,這可以知足良多的營業場景,是以,本文將連系例子來申明若何挪用async進行異步操作。

    東西/原料

    • C++11

    方式/步調

    1. 1

      挪用async函數之前,需要添加頭文件future

    2. 2

      界說實現如下圖所示的線程回調函數,入參是字符串類型,返回值是整型

    3. 3

      挪用std::async,傳入回調函數以及回調函數對應的入參值,返回std::future類型對象,該對象用于獲取異步線程返回的值

    4. 4

      利用std::futrue的函數wait_for超時期待,按照返回的值來判定線程函數是否已經竣事

    5. 5

      std::futrue供給的函數get,可以獲取線程函數返回成果

    6. 6

      調試運行輸出的信息如下所示,從信息看合適預期,get獲取到線程函數返回的成果值

    7. 7

      可以采用如下的體例來輪回獲取異步線程執行的成果,若是返回timeout暗示超時,若是返回ready暗示使命完當作,若是返回deferred暗示還沒啟動線程

    8. 8

      運行成果如下,輪回查詢過程中,呈現一次timeout,表白線程函數還沒有執行完畢

    注重事項

    • 喜好經驗接待點贊投票!
    • 經驗由 YWMLI1 原創,首發百度經驗,轉載請注明出處!
    • 發表于 2019-07-03 17:03
    • 閱讀 ( 748 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆