IllegalArgumentException对unlockCanvasAndPost

我有以下Kotlin代码在canvas上绘制:

override fun run() { while(!isPaused) { if(!holder.surface.isValid){ Thread.sleep(10) continue } val canvas = holder.lockCanvas() if(canvas == null) { Thread.sleep(10) continue } if(!stateManager.isStarted){ stateManager.handler = handler stateManager.start(2000) } drawAdultBackground(canvas) drawChildBackground(canvas) holder.unlockCanvasAndPost(canvas) } } 

但是我有时在unlockCanvasAndPost上得到一个IllegalArgumentException。 什么可以导致这个? 据我所知,这个错误最常见的原因是canvas没有锁定,但有没有办法与这个代码,它不能被锁定?