在迁移到 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()) {...}
}