您的位置:首页 > 房产 > 建筑 > sem推广竞价_布展设计收费标准_百度浏览器官网在线使用_武汉百度推广电话

sem推广竞价_布展设计收费标准_百度浏览器官网在线使用_武汉百度推广电话

2024/12/23 10:22:28 来源:https://blog.csdn.net/wy313622821/article/details/142392851  浏览:    关键词:sem推广竞价_布展设计收费标准_百度浏览器官网在线使用_武汉百度推广电话
sem推广竞价_布展设计收费标准_百度浏览器官网在线使用_武汉百度推广电话

withTimeoutOrNull 是 Kotlin 协程库中的一个非常有用的函数,它允许你在指定的时间内执行一个代码块,如果在指定的时间内代码块没有执行完毕,那么它会返回 null,而不是抛出一个异常。这个函数在处理可能需要较长时间完成的操作,但又不想让程序因为等待这个操作而阻塞的场景中非常有用。 

withTimeoutOrNull使用:

 fun performDatabaseQuery(): String {delay(1500)return "Query result"}fun main() {runBlocking {val result = withTimeoutOrNull(1000.milliseconds) {performDatabaseQuery()}if (result == null) {println("Database query timed out.")} else {println(result)}}}

 结合suspendCancellableCoroutine来使用:

@OptIn(ExperimentalCoroutinesApi::class)suspend fun main(): String = suspendCancellableCoroutine { ctn ->runBlocking {val result = withTimeoutOrNull(1000) {delay(900) // 这里的时间不一定是900ms"操作完成"}if (result == null) ctn.resume("操作超时") {} else ctn.resume(result) {}}}// 调用lifecycleScope.launch {val result = main()println("1111 : $result")}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com