Swift2 循环和调度队列

Swift2 循环和调度队列,swift2,Swift2,我有一个调度队列,它必须无限地运行。所以我试着让它在一个do-while循环中运行,这样线程就可以连续运行,但是当我尝试这样做时,我得到了一个空白屏幕 代码如下: var i = 1 do{ dispatch.main(3) { self.myfunction() } i+=1 }while(i>0) 我不明白,为什么会这样?你知道如何每隔几秒钟调用一次调度吗?这里是NSTimer的扩展,来自 代码的作用很容易理解。创

我有一个调度队列,它必须无限地运行。所以我试着让它在一个do-while循环中运行,这样线程就可以连续运行,但是当我尝试这样做时,我得到了一个空白屏幕

代码如下:

    var i = 1
    do{
    dispatch.main(3)
    {
       self.myfunction()
    }
    i+=1
    }while(i>0)

我不明白,为什么会这样?你知道如何每隔几秒钟调用一次调度吗?

这里是
NSTimer
的扩展,来自

代码的作用很容易理解。创建一个运行循环计时器,将其添加到运行循环中,以便它可以实际运行和启动,并返回该实例,以便稍后停止它

let timer = NSTimer.runThisEvery(seconds: 3) { _ in self.myFunction() }
要阻止它,只需:

timer.invalidate()

您是否在主线程上运行此代码?是的,我在主线程上运行它如果您在主线程上无限期地运行while循环,您将阻塞UI。你也是这样。好的,我会在另一个线程上尝试,但是为什么这个问题被否决了?因为简单的谷歌搜索会给你很多关于这个的结果。表明在提出问题之前没有进行足够的研究。:)谢谢你的帮助:)
timer.invalidate()