在C++中,可以使用多線程來避免阻塞主線程。主線程可以創建一個新的線程來處理需要延遲的任務,然后主線程可以繼續執行其他操作。
以下是一個示例代碼,展示如何使用C++的std::thread來創建一個新線程來處理延遲任務:
#include <iostream>
#include <thread>
#include <chrono>
void delayedTask()
{
// 模擬一個需要延遲執行的任務
std::this_thread::sleep_for(std::chrono::seconds(5));
std::cout << "Delayed task completed" << std::endl;
}
int main()
{
std::cout << "Main thread started" << std::endl;
// 創建一個新的線程來執行延遲任務
std::thread t(delayedTask);
// 主線程可以繼續執行其他操作
for (int i = 0; i < 5; i++)
{
std::cout << "Main thread working... " << i << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
// 等待延遲任務線程完成
t.join();
return 0;
}
通過這種方式,主線程可以繼續執行其他操作,而不會被延遲任務阻塞。延遲任務會在新線程中執行,當任務完成后,可以調用join()方法來等待線程結束。