在迁移到 Kotlin 的过程中,出现了问题。由于不同的原因,我们已经有了一些ThreadPools。
如何在现有的ThreadPool上执行协程?

例如此代码:

    suspend fun fetchMedia(): Flow<MediaItem> {
        return withContext(Dispatchers.IO) {...}
    }

如何将Dispatchers.IO替换为我自己的ThreadPoolExecutor?

最佳答案

您可以使用Executor ThreadPools在其上调用asCoroutineDispatcher(),如下所示:

suspend fun fetchMedia(): Flow<MediaItem> {
    return withContext(myThreadPool.asCoroutineDispatcher()) {...}
}

09-13 00:52