Closed for7GG closed 4 years ago
什么都没点,job怎么执行这么多次?
你提供的信息看不出什么问题。这个应该不是demo的逻辑,你改动什么了吗? 得看下你的图怎么写。
我没改代码,就是加了执行job的log
fun doJob(name:String,millis: Long) {
val nowTime = System.currentTimeMillis()
while (System.currentTimeMillis() < nowTime + millis) {
//程序阻塞指定时间
val min = 10
val max = 99
val random = Random()
val num = random.nextInt(max) % (max - min + 1) + min
Log.e("doJob","是是是 doJob $name")
}
}
你试一下DEMO MainActivity
private fun testUserChoose() {
findViewById<View>(R.id.test_user_anchor).setOnClickListener {
Log.d("MainActivity", "Demo1 - testUserChoose")
val anchor = TaskTest().startForTestLockableAnchor()
anchor.setLockListener(object : LockableAnchor.LockListener {
override fun lockUp() {
CusDialog.Builder(this@MainActivity)
.title("任务(" + anchor.lockId + ")已进入等待状态,请求响应")
.left("终止任务", View.OnClickListener {
anchor.smash()
})
.right("继续执行", View.OnClickListener {
anchor.unlock()
}).build().show()
}
})
// TaskTest().startForTestLockableAnchorByDsl {
// val lockableAnchor = it
// CusDialog.Builder(this@MainActivity)
// .title("任务(" + lockableAnchor.lockId + ")已进入等待状态,请求响应")
// .left("终止任务", View.OnClickListener {
// lockableAnchor.smash()
// })
// .right("继续执行", View.OnClickListener {
// lockableAnchor.unlock()
// }).build().show()
// }
Log.d("MainActivity", "Demo1 - testUserChoose")
}
}
不使用dsl 是否有问题。
还是同样的问题
你的Task 10 一直在循环,打出这些log为何是错误的?
fun doJob(name:String,millis: Long) {
val nowTime = System.currentTimeMillis()
while (System.currentTimeMillis() < nowTime + millis) {
//程序阻塞指定时间
val min = 10
val max = 99
val random = Random()
val num = random.nextInt(max) % (max - min + 1) + min
Log.e("doJob","是是是 doJob $name")
}
}
其 Task11/12等son,需要结束watier才显示。
你可以过滤 DEPENDENCE_DETAIL 看下。 TASK_10 --> TASK_10_waiter --> TASK_11 --> TASK_12 --> TASK_13
哦,明白了,感谢
在dsl模式下,block存在一个时序的bug,修复了还没有发布,block功能如果需要使用的话,是用非dsl就好。
正常了