小编mom*_*t99的帖子

如何创建分层 CancellationTokenSource?

在我们的项目中,我们决定借助CancellationToken.

由于项目中作品的结构,我需要一个分层取消机制。通过分层,我的意思是父源取消会导致所有子源被递归取消,但子源取消不会传播到父源。

.NET 中是否有开箱即用的此类选项?如果没有,我不确定向父令牌注册委托是否足够,或者应该进一步考虑。

c# task task-parallel-library cancellation

7
推荐指数
2
解决办法
535
查看次数

如何在 Kotlin 协程中从布尔值返回/转换 Flow<Boolean>?

我有一个 Android 库,我在其中监听网络变化,我想做的是,使用 Flow/launch of coroutines 观察这些变化

这是我的 NetworkReceiver,它让我知道连接何时发生变化

我采用了一个变量isNetworkConnectionActive,该变量init在库中设置为 false,并根据网络更改在以下函数中设置为 true false

class ConnectionChangeReceiver: BroadcastReceiver() {
    override fun onReceive(context: Context?, p1: Intent?) {
        if(isNetworkConnectionActive(context)) {
            OfflineDataLibrary.isNetworkConnectionActive = true
            Toast.makeText(context, "isNetworkConnectionActive - YES", Toast.LENGTH_LONG).show()
        } else {
            OfflineDataLibrary.isNetworkConnectionActive = false
            Toast.makeText(context, "isNetworkConnectionActive - NO", Toast.LENGTH_LONG).show()
        }

    }

    fun isNetworkConnectionActive(context: Context?): Boolean {
        val connectivityManager: ConnectivityManager = context?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        var isConnectionActive = false
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            val nw      = connectivityManager.activeNetwork ?: return false
            val …
Run Code Online (Sandbox Code Playgroud)

android flow kotlin kotlin-coroutines kotlin-coroutines-flow

0
推荐指数
1
解决办法
2111
查看次数