私は、Win32 APIにはスリープメソッドがあり、関数呼び出しを遅らせるタイマークラスもあることがわかりました。OS Xでの関数呼び出しの遅延
Mac OSで使用できるものと似たものはありますか?
JavaScriptとAS3にあるsetTimeout
関数を作成する簡単なソリューションが必要です。
私は、Win32 APIにはスリープメソッドがあり、関数呼び出しを遅らせるタイマークラスもあることがわかりました。OS Xでの関数呼び出しの遅延
Mac OSで使用できるものと似たものはありますか?
JavaScriptとAS3にあるsetTimeout
関数を作成する簡単なソリューションが必要です。
CFTimer
は、が実際にはであり、C++ &Cと互換性があります。
私が知ることは、それほどよく説明されていません。 Here is a related question that mentions it。より高いレベルで
、sleep
(I've linked the man page for you here)の標準C・コールが、またそこだとあなたは、機能のsetTimeout
型としてこれを実行したい場合は、それが終了したときは、(その後、別のスレッドからsleep
を行う方法を把握し、可能性があり殺されることなく)、物事は「タイムアウト」と考えてください。
これはNSTimerで行うことができます。
これはC++ではありません – Pier
ごめんなさい。あなたが正しい。 CFTimerがより良い選択になるでしょう。 – user1118321
C++コードをラップするC関数(またはブロック)を書くことができる場合は、Grand Central Dispatchを使用できます。
機能の遅延呼び出しの場合はdispatch_after_f
、ブロックベースの同等の場合はdispatch_after
を参照してください。
あなたは2つの方法を使用してそれを行うことがあります。
1)このような使用NSObject
さんperformSelector:withObject:afterDelay:
2)を使用するグランドセントラル派遣、:
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, interval * NSEC_PER_SEC);
dispatch_after(delay, dispatch_get_main_queue(), ^{
your code here
});
あるいは、短い構文については、プロジェクトのどこかに次の関数を追加することができます:
void Dispatch_AfterDelay(dispatch_queue_t queue, NSTimeInterval afterInterval, dispatch_block_t block)
{
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, afterInterval * NSEC_PER_SEC);
dispatch_after(delay, queue, block);
}
void Dispatch_AfterDelay_ToMainThread(NSTimeInterval afterInterval, dispatch_block_t block)
{
Dispatch_AfterDelay(dispatch_get_main_queue(), afterInterval, block);
}
そしてあなただけの呼び出し:
Dispatch_AfterDelay_ToMainThread(5.0, ^{
your code
});
NSTimeInterval?それはCocoaの一部です...私はC++が必要です。 – Pier
ターミナルを開いて 'apropos sleep'と入力しないと、-1になります。 – asveikau