Tag: 暂停

CORUTTINE_SUSPENDED和suspendCoroutineOrReturn在Kotlin

kotlin中的协程的概念是抽象暂停和回调的概念,并写出简单的顺序代码。 如果协程暂停或不在线,则无需担心,与线程类似。 suspendCoroutineOrReturn和COROUTINE_SUSPENDED的用途是什么,在什么情况下你会使用它们?

如何用Java按媒体密钥?

或者我如何发送相同的命令? 我希望我的应用能够播放/暂停/等。 当前正在播放的媒体在桌面环境 (Windows / macOS / Linux)中,但通过机器人可以按的键看,这些不在那里。 我简单地看了一下jintellitype ,但这似乎并不是我想要的(关于运行Apache服务器的一些事情?) 有没有办法按这些媒体密钥或发送类似的命令操作系统使用Java *? 这可以是Java SE(AWT / Swing / FX等)或其他免费库中的任何东西。 *我正在使用Kotlin,以防万一

将回调代码迁移到暂停function

我正在使用协程将我的Android代码从Java重新分解到Kotlin,但是我没有find一种简单的方法来将基于回调的代码重写为挂起的函数。 一个基本的例子是一个警告popup框,返回一个结果,在Javascript中它将是这样的: let value = prompt(“please insert a value”) console.log(“Value:”+value) 我会在Kotlin翻译如下: class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { //Standard activity initialization super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //Actual code… launch { val value = resolvable(UI) { success, error -> //Build a simple popup prompt with AlertDialog val input = EditText(this@MainActivity) val builder = AlertDialog.Builder(this@MainActivity) .setTitle(“please insert […]

Kotlin挂起函数递归调用

突然发现,递归调用挂起函数需要更多的时间,然后调用相同的函数,但没有suspend修饰符,所以请考虑下面的代码片段(基本的斐波那契数列计算): suspend fun asyncFibonacci(n: Int): Long = when { n asyncFibonacci(n + 2) – asyncFibonacci(n + 1) n == -1 -> 1 n == 0 -> 0 n == 1 -> 1 n >= 2 -> asyncFibonacci(n – 1) + asyncFibonacci(n – 2) else -> throw IllegalArgumentException() } 如果我调用这个函数并用下面的代码来衡量它的执行时间: fun main(args: Array) { val totalElapsedTime […]

在Kotlin协同程序中暂停function是什么意思

我正在阅读Kotlin Coroutine,知道它是基于suspendfunction的。 但suspend是什么意思? 协程或函数被暂停? 从https://kotlinlang.org/docs/reference/coroutines.html 基本上,协程是可以暂停而不阻塞线程的计算 我听到有人经常说“暂停function”。 但是我认为是因为等待函数完成而被暂停的协程? “挂起”通常意味着“停止运行”,在这种情况下,协程是空闲的。 🤔我们应该说协程暂停了吗? 哪个协程暂停? 从https://kotlinlang.org/docs/reference/coroutines.html 为了继续这个比喻,await()可以是一个挂起函数(因此也可以从async {}块中调用)暂停一个协程,直到某个计算完成并返回结果: async { // Here I call it the outer async coroutine … // Here I call computation the inner coroutine val result = computation.await() … } 🤔它说“暂停一个协程,直到一些计算完成”,但协程就像一个轻量级的线程。 所以如果协程暂停,那么计算如何完成呢? 我们看到await被调用computation ,所以它可能是async ,返回Deferred ,这意味着它可以启动另一个协程 fun computation(): Deferred { return async { true } […]