Tag: asynchronous

我应该怎样调用3个函数才能一个接一个地执行它们?

如果我需要一个接一个地调用这个函数, $('#art1').animate({'width':'1000px'},1000); $('#art2').animate({'width':'1000px'},1000); $('#art3').animate({'width':'1000px'},1000); 我知道在jQuery我可以做一些事情: $('#art1').animate({'width':'1000px'},1000,'linear',function(){ $('#art2').animate({'width':'1000px'},1000,'linear',function(){ $('#art3').animate({'width':'1000px'},1000); }); }); 但是,让我们假设我没有使用jQuery,我想调用: some_3secs_function(some_value); some_5secs_function(some_value); some_8secs_function(some_value); 我应该如何调用这个函数来执行some_3secs_function ,并且在那个调用结束之后,然后执行some_5secs_function和AFTER那个调用结束,然后调用some_8secs_function ? 更新: 这还不行: (function(callback){ $('#art1').animate({'width':'1000px'},1000); callback(); })((function(callback2){ $('#art2').animate({'width':'1000px'},1000); callback2(); })(function(){ $('#art3').animate({'width':'1000px'},1000); })); 三个animation同时开始 我的错误在哪里?

在同步读取/写入端口时避免recursion?

Rebol 3中的所有端口操作都是asynchronous的。 我可以find做同步通信的唯一方法是呼叫wait 。 但是在这种情况下调用wait的问题在于,它将检查所有打开的端口的事件(即使它们不在等待的端口块中)。 然后他们调用他们的响应事件处理程序,但是可以在其中一个事件处理程序中进行读/写操作。 这可能会导致recursion调用“等待”。 我如何解决这个问题?

在.NET中如何产生和等待实现控制stream?

正如我所理解的yield关键字,如果从一个迭代器块内部使用,它会将控制stream返回给调用代码,并且当再次调用迭代器时,它会从中断处继续。 另外,不仅等待被叫方等待,而且还向主叫方返回控制权,只有当主叫方awaits方法时,才能从中断的位置继续。 换句话说,没有线程 ,asynchronous和等待的“并发”是由控制的巧妙stream动造成的错觉,其细节被语法掩盖。 现在,我是一个前汇编程序员,我非常熟悉指令指针,堆栈等,我得到正常的控制stream(子例程,recursion,循环,分支)如何工作。 但是这些新的结构 – 我没有得到它们。 当await到达时,运行时如何知道下一步应该执行哪一段代码? 它是如何知道什么时候可以恢复的呢?它又如何记住它在哪里? 目前的调用堆栈发生了什么,它以某种方式得到保存? 如果调用方法在进行其他方法调用之前await什么?为什么堆栈不被覆盖? 那么在这种情况下,运行时如何解决这个问题呢? 当达到yield时,运行时如何跟踪应该提取事物的点? 如何保存迭代器状态?

使用Moq来模拟一个unit testing的asynchronous方法

我正在testing一个Web API调用的服务的方法。 如果我也在本地运行Web服务(位于解决scheme中的另一个项目中),使用正常的HttpClient可以正常工作。 但是,当我检查我的更改时,构build服务器将无法访问Web服务,因此testing将失败。 我已经为unit testingdevise了一个解决方法,创build一个IHttpClient接口并实现我在应用程序中使用的版本。 对于unit testing,我使用模拟的asynchronouspost方法完成一个模拟版本。 这是我遇到问题的地方。 我想为这个特定的testing返回一个OK的HttpStatusResult 。 对于另一个类似的testing,我将返回一个不好的结果。 testing将运行,但永远不会完成。 它挂在等待。 我是新来的asynchronous编程,委托,Moq本身,我一直在search和谷歌一段时间学习新的东西,但我似乎无法摆脱这个问题。 这是我想要testing的方法: public async Task<bool> QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here } // more stuff } 这是我的unit testing方法: [TestMethod] public […]

返回void和返回一个Task有什么区别?

在查看各种C#asynchronousCTP示例时,我看到一些返回voidasynchronous函数,以及其他返回非通用Taskasynchronous函数。 我可以看到为什么在asynchronous操作完成时返回一个Task<MyType>对于将数据返回给调用者是有用的,但是我所看到的具有返回typesTask的函数永远不会返回任何数据。 为什么不回报void ?

async.waterfall和async.series有什么不同?

nodejsasynchronous模块: https : //github.com/caolan/async提供了2个类似的方法, async.waterfall和async.series 。 他们有什么区别?

entity frameworkasynchronous操作需要十倍的时间才能完成

我有一个使用entity framework6来处理数据库的MVC网站,我一直在尝试改变它,以便所有东西作为asynchronous控制器运行,并且调用数据库作为它们的asynchronous运行(例如,ToListAsync()而不是ToList()) 我遇到的问题是,简单地改变我的查询asynchronous已经使他们变得非常慢。 以下代码从我的数据上下文中获取“Album”对象的集合,并将其转换为相当简单的数据库连接: // Get the albums var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync(); 这是创build的SQL: exec sp_executesql N'SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], [Extent1].[ASIN] AS [ASIN], [Extent1].[Title] AS [Title], [Extent1].[ReleaseDate] AS [ReleaseDate], [Extent1].[AccurateDay] AS [AccurateDay], [Extent1].[AccurateMonth] AS [AccurateMonth], [Extent1].[Type] AS [Type], [Extent1].[Tracks] AS [Tracks], [Extent1].[MainCredits] AS [MainCredits], [Extent1].[SupportingCredits] AS […]

jQuery“each()”函数是否同步?

考虑这种情况来validation: function validateForm (validCallback) { $('#first-name').add($('#last-name')).add($('#address')).each(function () { // validating fields and adding 'invalid' class to invalid fields. }); // doing validation this way for almost 50 fields (loop over 50 fields) if ($('#holder .invalid').length == 0) { // submitting data here, only when all fields are validated. } } 现在,我的问题是,在循环完成之前, if块会被执行。 我期望validateForm的主体被同步执行,但似乎jQuery each()函数asynchronous执行。 我对吗? […]

如何使用Junit来testingasynchronous进程

如何testing使用Junit激发asynchronous进程的方法? 我不知道如何让我的testing等待进程结束(这不完全是一个unit testing,它更像是一个集成testing,因为它涉及几个类而不只是一个)

来自.Net 4.5的asynchronousHttpClient是密集加载应用程序的不好select吗?

我最近创build了一个简单的应用程序来testingHTTP调用吞吐量,这个吞吐量可以用一种经典的multithreading方法以asynchronous方式生成。 该应用程序能够执行预定义数量的HTTP调用,并在最后显示执行它们所需的总时间。 在我的testing中,所有的HTTP调用都是由我的本地IIS服务器进行的,他们检索到一个小文本文件(12字节大小)。 下面列出了asynchronous实现代码中最重要的部分: public async void TestAsync() { this.TestInit(); HttpClient httpClient = new HttpClient(); for (int i = 0; i < NUMBER_OF_REQUESTS; i++) { ProcessUrlAsync(httpClient); } } private async void ProcessUrlAsync(HttpClient httpClient) { HttpResponseMessage httpResponse = null; try { Task<HttpResponseMessage> getTask = httpClient.GetAsync(URL); httpResponse = await getTask; Interlocked.Increment(ref _successfulCalls); } catch (Exception ex) { […]