Tag: asynchronous

我将如何同步运行asynchronous任务<T>方法?

我正在学习asynchronous/等待,并遇到了需要同步调用asynchronous方法的情况。 我怎样才能做到这一点? asynchronous方法: public async Task<Customers> GetCustomers() { return await Service.GetCustomersAsync(); } 正常用法: public async void GetCustomers() { customerList = await GetCustomers(); } 我已经尝试使用以下内容: Task<Customer> task = GetCustomers(); task.Wait() Task<Customer> task = GetCustomers(); task.RunSynchronously(); Task<Customer> task = GetCustomers(); while(task.Status != TaskStatus.RanToCompletion) 我也从这里尝试了一个build议,但是当调度员处于暂停状态时它不起作用。 public static void WaitWithPumping(this Task task) { if (task == null) throw new […]

如何以及何时使用`async`和`await`

从我的理解, async和await的主要事情之一是使代码易于编写和读取 – 但使用它们相当于产卵后台线程来执行长期的逻辑? 我目前正在尝试最基本的例子。 我在内部添加了一些评论。 你能为我澄清吗? // I don't understand why this method must be marked as `async`. private async void button1_Click(object sender, EventArgs e) { Task<int> access = DoSomethingAsync(); // task independent stuff here // this line is reached after the 5 seconds sleep from // DoSomethingAsync() method. Shouldn't it be reached immediately? […]

等待vs Task.Wait – 死锁?

我不太了解Task.Wait和await之间的区别。 我有一些类似于ASP.NET WebAPI服务中的以下function: public class TestController : ApiController { public static async Task<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task<string> Bar() { return await Foo(); } public async static Task<string> Ros() { return await Bar(); } // GET api/test public IEnumerable<string> Get() { Task.WaitAll(Enumerable.Range(0, 10).Select(x => Ros()).ToArray()); return new string[] { […]

在Swift函数中从asynchronous调用中返回数据

我在我的Swift项目中创build了一个工具类,它处理所有的REST请求和响应。 我已经构build了一个简单的REST API,所以我可以testing我的代码。 我创build了一个需要返回一个NSArray的类方法,但是因为API调用是asynchronous的,我需要从asynchronous调用中的方法返回。 问题是asynchronous返回void。 如果我在Node中这样做,我会使用JS承诺,但我不能找出一个在Swift中的解决scheme。 import Foundation class Bookshop { class func getGenres() -> NSArray { println("Hello inside getGenres") let urlPath = "http://creative.coventry.ac.uk/~bookshop/v1.1/index.php/genre/list" println(urlPath) let url: NSURL = NSURL(string: urlPath) let session = NSURLSession.sharedSession() var resultsArray:NSArray! let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in println("Task completed") if(error) { println(error.localizedDescription) } var […]

asynchronous过程里面的JavaScript for循环

我正在运行以下forms的事件循环: var i; var j = 10; for (i = 0; i < j; i++) { asycronouseProcess(callBackFunction() { alert(i); }); } 我想要显示的是一系列显示数字0到10的警报。问题在于,当callback函数被触发时,循环已经经历了几次迭代,并且显示了更高的i值。 有关如何解决这个问题的任何build议?

asynchronous与同步执行,这是什么意思?

asynchronous和同步执行有什么区别?

NetworkOnMainThreadException

我刚刚在官方文档中发现了NetworkOnMainThreadException 并想知道模拟器是否正在抛出这个。 我一直在testing我的应用程序,据我所知,所有的networking都脱离主线程(使用Roboguice RoboAsyncTask),但你永远不知道是否没有逃脱。 我也使用StrictMode并没有看到任何东西。 我的代码是干净的,还是不会在模拟器上抛出? 我们应该如何准备在生产中发生这种情况呢? 宽限期或什么? 或者现在已经过去了;-) ??

我怎样才能让jQuery执行同步而不是asynchronous的Ajax请求?

我有一个提供标准扩展点的JavaScript小部件。 其中之一是beforecreatefunction。 它应该返回false以防止创build项目。 我已经使用jQuery将Ajax调用添加到此函数中: beforecreate: function (node, targetNode, type, to) { jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value), function (result) { if (result.isOk == false) alert(result.message); }); } 但是我想阻止我的小部件创build项目,所以我应该在母函数中返回false ,而不是在callback中。 有没有办法使用jQuery或任何其他API执行同步的Ajax请求?

如何检查Android的互联网接入? InetAddress永远不会超时

我有一个AsyncTask应该检查networking对主机名的访问。 但doInBackground()永远不会超时。 任何人都有线索? public class HostAvailabilityTask extends AsyncTask<String, Void, Boolean> { private Main main; public HostAvailabilityTask(Main main) { this.main = main; } protected Boolean doInBackground(String… params) { Main.Log("doInBackground() isHostAvailable():"+params[0]); try { return InetAddress.getByName(params[0]).isReachable(30); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return false; } protected void onPostExecute(Boolean… result) { Main.Log("onPostExecute()"); […]

console.log()asynchronous或同步?

我正在阅读Trevor Burnham的Async Javascript 。 迄今为止这是一本很好的书。 他在Safari和Chrome控制台中讨论这个片段和console.log是“asynchronous”。 不幸的是我不能复制这个。 这里是代码: var obj = {}; console.log(obj); obj.foo = 'bar'; // my outcome: Object{}; 'bar'; // The book outcome: {foo:bar}; 如果这是asynchronous的,我预计结果是书的结果。 console.log()被放入事件队列中,直到所有的代码被执行,然后它被运行,它将有bar属性。 它似乎虽然是同步运行。 我运行这个代码错了吗? 是console.log实际上是asynchronous?