Questions tagged «asynchronous»

异步编程是一种用于延迟具有高延迟或低优先级的操作的策略,通常是为了提高软件的性能,响应能力和/或可组合性。通常使用事件驱动的编程和回调的某种组合来采用此类策略,并且可以选择通过协程和/或线程并发使用。

4
node.js的console.log是异步的吗?
是console.log/debug/warn/error在node.js中-异步?我的意思是,直到代码在屏幕上打印出来,否则javascript代码执行都会停止执行,还是稍后再打印? 另外,我有兴趣知道console.log是否有可能在节点崩溃后立即不显示任何内容。

3
HttpClient中带有await的异步调用永远不会返回
我正在C#Win8 CP上的一个基于xaml的Metro应用程序中打个电话。此调用仅命中Web服务并返回JSON数据。 HttpMessageHandler handler = new HttpClientHandler(); HttpClient httpClient = new HttpClient(handler); httpClient.BaseAddress = new Uri("http://192.168.1.101/api/"); var result = await httpClient.GetStreamAsync("weeklyplan"); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(WeeklyPlanData[])); return (WeeklyPlanData[])ser.ReadObject(result); 它挂在,await但http调用实际上几乎立即返回(通过提琴手确认);好像await被忽略了,就挂在那里。 询问之前 -是-专用网络功能已打开。 任何想法为什么会挂起?

5
JavaScript promise和async await有什么区别?
我已经在移动应用程序和Web应用程序中使用了ECMAScript 6和ECMAScript 7功能(由于Babel)。 第一步显然是达到ECMAScript 6级别。我学习了许多异步模式,promise(确实很有希望),生成器(不确定为什么使用*符号)等。其中,promise非常适合我的目的。我已经在我的应用程序中使用它们很多次了。 这是我如何实现基本诺言的示例/伪代码- var myPromise = new Promise( function (resolve,reject) { var x = MyDataStore(myObj); resolve(x); }); myPromise.then( function (x) { init(x); }); 随着时间的流逝,我遇到了ECMAScript 7功能,其中之一是ASYNC和AWAIT关键字/功能。这些结合在一起创造了很大的奇迹。我已经开始用代替我的一些诺言async & await。它们似乎为编程风格增加了巨大的价值。 同样,这是我的async,await函数的伪代码,如下所示: async function myAsyncFunction (myObj) { var x = new MyDataStore(myObj); return await x.init(); } var returnVal = await myAsyncFunction(obj); …

1
使用SqlCommand Async方法处理大数据的性能糟糕
使用异步调用时,我遇到了主要的SQL性能问题。我创建了一个小案例来演示该问题。 我在驻留在我们LAN中的SQL Server 2016上创建了一个数据库(因此没有localDB)。 在该数据库中,我有一个WorkingCopy包含2列的表: Id (nvarchar(255, PK)) Value (nvarchar(max)) DDL CREATE TABLE [dbo].[Workingcopy] ( [Id] [nvarchar](255) NOT NULL, [Value] [nvarchar](max) NULL, CONSTRAINT [PK_Workingcopy] PRIMARY KEY CLUSTERED ([Id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] …

6
如何等待异步回调函数集?
我在javascript中看起来像这样的代码: forloop { //async call, returns an array to its callback } 在完成所有这些异步调用之后,我想计算所有数组的最小值。 我要如何等待所有人? 我现在唯一的想法是拥有一个名为done的布尔数组,并在第i个回调函数中将done [i]设置为true,然后说while(不是全部完成){} 编辑:我想一个可能但很丑陋的解决方案是在每个回调中编辑完了的数组,然后如果每个回调中都设置了所有其他完成,则调用一个方法,因此要完成的最后一个回调将调用继续方法。 提前致谢。

2
将同步代码包装为异步调用
我在ASP.NET应用程序中有一个方法,要花大量时间才能完成。在一个用户请求期间,此方法的调用最多可能发生3次,具体取决于用户提供的缓存状态和参数。每次通话大约需要1-2秒才能完成。该方法本身是对服务的同步调用,无法覆盖实现。 因此,对该服务的同步调用如下所示: public OutputModel Calculate(InputModel input) { // do some stuff return Service.LongRunningCall(input); } 方法的用法是(请注意,方法的调用可能会发生多次): private void MakeRequest() { // a lot of other stuff: preparing requests, sending/processing other requests, etc. var myOutput = Calculate(myInput); // stuff again } 我尝试从自己的角度更改实现,以提供此方法的同步工作,这就是到目前为止的内容。 public async Task<OutputModel> CalculateAsync(InputModel input) { return await Task.Run(() => …

5
我是否应该担心“此异步方法缺少'await'运算符,并且将同步运行”警告
我有一个暴露一些异步方法的接口。更具体地说,它具有定义的返回Task或Task <T>的方法。我正在使用async / await关键字。 我正在实现此接口。但是,在其中某些方法中,此实现没有任何等待。因此,我收到编译器警告“此异步方法缺少'await'运算符,将同步运行...” 我知道为什么会收到错误,但想知道在这种情况下是否应该对它们采取任何措施。忽略编译器警告是错误的。 我知道我可以通过等待Task.Run来修复它,但是对于仅执行一些廉价操作的方法来说,这是错误的。听起来也好像会给执行增加不必要的开销,但是由于不确定async关键字,因此我也不确定是否已经存在。 我应该只是忽略警告,还是有办法解决我所没有看到的问题?

4
POSIX异步I / O(AIO)的状态是什么?
网上散布着许多页面,这些页面以不同的细节描述了POSIX AIO设备。他们都不是最近的。目前尚不清楚他们在描述什么。例如,这里的Linux内核异步I / O支持的“官方”(?)网站说套接字不起作用,但是Ubuntu 8.04.1工作站上的“ aio.h”手册页似乎都暗示着它适用于任意文件描述符。然后还有另一个项目似乎在库层工作,甚至需要更少的文档。 我想知道: POSIX AIO的目的是什么?考虑到我能找到的最明显的实现示例说它不支持套接字,所以整个事情对我来说很奇怪。它仅用于异步磁盘I / O吗?如果是这样,为什么要使用超通用API?如果不是,为什么磁盘I / O成为首先受到攻击的东西? 在哪里可以找到完整的 POSIX AIO程序示例示例? 有人真正使用过它吗? 哪些平台支持POSIX AIO?他们支持哪一部分?有人真的支持<aio.h>似乎可以保证的隐含“任何FD的任何I / O” 吗? 我可以使用的其他多路复用机制非常好,但是随处可见的随机信息碎片使我感到好奇。
93 linux  asynchronous  posix  bsd  aio 

10
事件处理程序执行的顺序
如果我设置了多个事件处理程序,如下所示: _webservice.RetrieveDataCompleted += ProcessData1; _webservice.RetrieveDataCompleted += ProcessData2; 事件RetrieveDataCompleted触发时处理程序的运行顺序是什么?它们是否在相同的线程中运行,并按注册的顺序顺序运行?

11
从Swift函数中的异步调用返回数据
我已经在我的Swift项目中创建了一个实用程序类,用于处理所有REST请求和响应。我建立了一个简单的REST API,因此可以测试我的代码。我创建了一个需要返回NSArray的类方法,但是由于API调用是异步的,因此我需要从异步调用内的方法中返回。问题是异步返回void。如果我在Node上执行此操作,则将使用JS promises,但我找不到能在Swift中使用的解决方案。 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) …
93 ios  rest  asynchronous  swift 

3
console.log()异步还是同步?
我目前正在阅读Trevor Burnham撰写的Async Javascript。到目前为止,这是一本很棒的书。 他谈到了此代码段和console.log在Safari和Chrome控制台中处于“异步”状态。不幸的是,我无法复制。这是代码: var obj = {}; console.log(obj); obj.foo = 'bar'; // my outcome: Object{}; 'bar'; // The book outcome: {foo:bar}; 如果这是异步的,我希望结果就是书籍的结果。将console.log()放到事件队列中,直到执行完所有代码,然后再运行它并具有bar属性。 它似乎正在同步运行。 我运行此代码是否错误?console.log实际上是异步的吗?

15
NSOperationQueue完成所有任务时获取通知
NSOperationQueue 有 waitUntilAllOperationsAreFinished,但我不想同步等待它。我只想在队列完成时在UI中隐藏进度指示器。 做到这一点的最佳方法是什么? 我无法从NSOperations 发送通知,因为我不知道哪个将是最后一个,并且[queue operations]在收到通知时可能还不为空(或者更糟-已重新填充)。

11
如何异步加载CSS
我正在尝试消除在我的网站上被阻止的2个CSS文件-它们出现在Google Page Speed Insights中。我采用了不同的方法,但都没有成功。但是,最近,我发现了一篇有关Thinking Async的文章,以及当我应用此代码时的文章:<script async src="https://third-party.com/resource.js"></script>它确实消除了问题。 但是,发布后,页面失去了样式。我不太确定发生了什么,因为代码可以正常工作,但是上传后的样式无效。感谢您的帮助。谢谢
92 html  css  asynchronous 


1
Node.js vs SignalR:为什么我们需要服务器端JavaScript?
自从了解Node.js以来,我一直是它的粉丝。但是今天,我发现了SignalR,它为ASP.NET提供了另一种异步的-可伸缩的实时模型。 据我所知,与SignalR相比,Node.js的主要优势是在客户端-服务器之间共享代码(另一个优势应该是跨平台),而SignalR的主要优势是更成熟的框架和更好的框架工具(IDE)支持。所以我想知道:如果SignalR在这里,我们是否需要Windows上的Node.js?我不知道Node.js有什么优势吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.