0

Today Extension 内からロードされるフレームワーク内のメソッドの実行を遅らせたいと考えています。

私はこれを試しました:

タスクと待ち時間を受け取る関数

func playCPUWithDelay(delayInMilliSeconds:Int64,scheduledTask: ()->Void)
 {

    let popTime = dispatch_time(DISPATCH_TIME_NOW,delayInMilliSeconds) // 1
    dispatch_after(popTime, GlobalMainQueue) { // 2

    scheduledTask()

}

であること

var GlobalMainQueue: dispatch_queue_t {
return dispatch_get_main_queue()
}

しかし、それは遅滞なく実行されます

また、試してみました..

NSThread.sleepForTimeInterval(NSTimeInterval(5000))

しかし、この呼び出しはアプリをハングアップさせ、その時間以上、永遠に応答しなくなります。

4

1 に答える 1

1

dispatch_timeミリ秒単位ではなくナノ秒単位の時間デルタがかかるため、関数が実際に機能する可能性が高く、1000000 の係数だけずれています。試してください:

let popTime = dispatch_time(DISPATCH_TIME_NOW, delayInMilliseconds * NSEC_PER_MSEC)
于 2015-02-09T20:11:57.683 に答える