美文网首页
协程-超时

协程-超时

作者: yunhen | 来源:发表于2024-04-16 13:15 被阅读0次
fun testTimeout(timeMillis:Long,sleepTime :Long){
    val scope = MainScope()
    val ceh = CoroutineExceptionHandler { _, throwable ->
        when(throwable){
            is CancellationException ->{
                Log.e("testTimeout"," CancellationException ")
            }
            else -> {
                Log.e("testTimeout","throwable${throwable.message}")
            }
        }


    }
    scope.launch(ceh) {
        withContext(Dispatchers.IO){
            val s = withTimeoutOrNull(timeMillis){
                return@withTimeoutOrNull suspendCancellableCoroutine<Boolean> {continuation ->
                    Log.e("suspendCancellableCoroutine"," 1 ")
                    SystemClock.sleep(sleepTime)
                    if (continuation.isActive)
                        continuation.resume(true)
                    else
                        continuation.cancel()
                    Log.e("suspendCancellableCoroutine"," 2 ")

                }
            }

            when(s){
                null ->{
                    Log.e(MainActivity.TAG,"超时了!")
                }
                true ->{Log.e(MainActivity.TAG,"没超时 true")}
                else ->{Log.e(MainActivity.TAG,"超时? else ")}
            }
        }
    }
}

相关文章

  • Kotlin协程(4)✔️管理协程

    等待协程结束超时设置取消协程   协程的管理比线程的管理要简单的多。 等待协程结束   前面提到过 join 函数...

  • go多任务(协程)超时管理

    问题:开启多个协程,只有当所有协程全部返回后,才能继续执行主逻辑代码;同时添加超时功能,当到达设置的超时时间仍有协...

  • 简易协程-3

    新增的功能 在《简易协程-2》的基础上增加协程同步等待、IO超时的支持。增加一个新类JoinAction支持协程同...

  • 协程

    一、取消与超时 1.线程取消 2.Job Job是标准库中启动协程后返回的对象,代表着协程本次作业。我们可以判断协...

  • Kotlin 协程(二) -协程取消与超时

    协程一:Kotlin 协程 (一)[https://mp.weixin.qq.com/s?__biz=Mzg3NT...

  • 协程的取消和超时

    取消协程 协程取消失效问题 cancel()方法调用后 马上返回而不是等协程结束后再返回,所以协程并不一定马上停止...

  • 2018-11-06 协程优化

    协程增加超时处理 :https://www.jianshu.com/p/0efdc952e8ca 报错信息 处理 ...

  • Kotlin学习之协程的取消与超时

    这一部分包含了协程的取消与超时。 取消协程的执行 在一个⻓时间运行的应用程序中,你也许需要对你的后台协程进行细粒度...

  • python异步协程(aiohttp,asyncio)

    python异步协程 环境:python3.7.0 协程 协程,英文叫做 Coroutine,又称微线程,纤程,协...

  • 协程(三)IEnumerable、IEnumerator、for

    协程(一)基本使用协程(二)协程什么时候调用协程(三)IEnumerable、IEnumerator、foreac...

网友评论

      本文标题:协程-超时

      本文链接:https://www.haomeiwen.com/subject/lswqxjtx.html