C++、XCode 4.6.3、OSX 10.8.2、iOS へのデプロイ
時限イベントを作成しようとしています。
私の考えたプロセスは、スレッドを作成し、その中でタイミングを取り、最後に別の関数を呼び出すことでした。これは機能していますが、プログラムの残りの部分を一時停止しています。
//Launch a thread
std::thread t1(start_thread);
//Join the thread with the main thread
t1.join();
void start_thread()
{
std::cout << "thread started" << std::endl;
auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_until(start + std::chrono::seconds(20));
stop_thread();
}
void stop_thread()
{
std::cout << "thread stopped." << std::endl;
}
プログラムの実行を一時停止しない方法はありますか?
アップデート:
ヘッダー ファイルでスレッドを宣言し、stop_thread() に参加することができます。
void stop_thread()
{
std::cout << "thread stopped." << std::endl;
ti.join();
}
しかし、それはスローします:
タイプ 'std::thread' は呼び出し演算子を提供しません
更新 2: join の代わりに t1.detach() を呼び出すとうまくいくようです。