- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在寻找一种简单的方法来并行启动多个任务并等待所有任务完成。
考虑这个 C# 示例:
private static void Main(string[] args)
{
var urlList = new[] {"http://www.microsoft.com/", "http://www.google.com/", "http://www.apple.com/" };
var result = GetHtml(urlList);
}
private static List<string> GetHtml(string[] urlList)
{
var tasks = new List<Task>();
var output = new List<string>();
foreach (var url in urlList)
{
var task = new Task(() =>
{
var html = new WebClient().DownloadString(url);
output.Add(html);
});
tasks.Add(task);
//starts task in a separate thread (doesn't block anything)
task.Start();
}
//waits for all tasks (running in parallel) to complete before exiting method
Task.WaitAll(tasks.ToArray());
return output;
}
GetHtml 方法并行下载多个网页并返回 html 字符串列表。
我如何使用 kotlin/anko 实现这一点?
private fun GetHtml(urlList: Array<String>): ArrayList<String> {
val tasks = ArrayList<Future<Unit>>()
val output = ArrayList<String>()
for (url in urlList) {
val task = async() {
//some java-code that downloads html from <url>, doesn't matter for now
output.add("html for $url")
}
tasks.add(task)
}
//this is NOT parallel execution
for (task in tasks) {
task.get()
}
//tasks.getall() ??
return output
}
最佳答案
基于来自 Michael 的输入和 pdegand59 ,这是一个可行的解决方案:
private fun GetHtml(urlList: Array<String>): ArrayList<String> {
val pool = Executors.newFixedThreadPool(urlList.count())
val countDownLatch = CountDownLatch(urlList.count())
val output = ArrayList<String>()
for (url in urlList) {
async(pool, {
//some java-code that downloads html for <url>
output.add("html for $url")
countDownLatch.countDown()
})
}
countDownLatch.await()
return output
}
关于android - Kotlin/anko 多个异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570927/
我使用 Anko DSL 制作了这个警报,并且没有在分辨率较低的设备上显示。 dialog = alert { customView {
我正试图接触 Anko 并遇到了这个问题。在其文档中说 Anko 有一个 convenience methods for logging ,我试过了,但 Android Studio 不会自动导入它,
有没有办法使用 Anko 将主题和样式添加到布局中?谢谢 最佳答案 我只是谷歌了同样的问题,并找到了答案 here 主题 Anko 也支持通过在任何 View 或布局之前的 themed 前缀来覆盖
我正在显示带有消息和确定按钮的警报对话框。但是确定按钮的颜色和按钮的文本是相同的 context!!.alert ("this test message for the dialog aleat"){
有了 Anko,我可以写这样的东西来显示对话框: alert("Dialog title") { yesButton {} noButton {} }.show() 如何为按钮设置标题?
在 anko/kotlin 中做 horizontalLayout 的好方法是什么? verticalLayout 工作正常 - 可以在其上设置方向,但感觉不对。不知道我在那里缺少什么。 最佳答案
GitHub 仓库链接:https://github.com/mattn/anko 1. anko 是干嘛用的? anko 是一个可以让 Go 项目支持脚本语言的小工具。换句话说,就是我们可以给
当在 Anko 的警报生成器中使用 positiveButton 和 negativeButton 时,即使 dismiss() ,它们似乎都会导致关闭对话框不被调用。有什么方法可以在单击按钮后保持对
我有这个问题: 错误: C:\Users\avi12\OneDrive\Documents\AndroidApps\WhatsApp Easy Sticker Maker\app\src\main\j
我对android开发完全陌生,所以我几天前才安装了Android studio。我创建了一个支持 Kotlin 的新项目和一个空 Activity ,并想使用 anko 库创建一个对话框。 我的 M
我正在使用 anko bg 功能来管理后台任务。 代码如下 import com.github.kittinunf.fuel.core.FuelError import com.github.kitt
我创建了一个自定义样式: wrap_content wrap_content 5dp 然后我用静态函数扩展了anko: inline fun ViewManager.sta
关注this slightly outdated tutorial之后,我一直在尝试使用 org.jetbrains.anko.design.floatingActionButton。错误是: Can
我正在 Android Studio 中创建一个项目,并且正在使用 Anko 库在单独的线程上运行 API 请求。所述线程只是进行 HTTP GET 调用并解析数据,同时 UI 线程传递所述数据并启动
使用 Anko,可以很容易地访问之前定义的组件。例如: verticalLayout { val name = editText() button("Say Hello") {
Anko Commons - Intent Usage 我如何准确地将 RecyclerView Adapter/else 中 Anko Commons 的 Intent 用于新的 Activity?
我是 anko 和协程的新手,所以如果我问一些琐碎的事情,请原谅 :) 所以我想要做的是让用户点击一个按钮,然后我想从互联网上下载一个 JSON,将它存储在本地并解析它。由于这两个操作都需要相当长的时
我正在尝试使用 anko 在警报中添加微调器。到目前为止,我的代码如下所示: alert(getString(R.string.alert)) { positiveButton
我正在尝试使用 Anko Commons – Logging 但出于某种原因,详细信息和调试信息没有显示在 logcat 上 但是,当我使用 Log.d 时,它按预期工作。 当我尝试这段代码时 ver
我正在使用 Anko DSL 编写 Android 布局。在定义 TextView 时,我想让它居中对齐,所以我这样写: verticalLayout { textView(R.string.
我是一名优秀的程序员,十分优秀!