Questions tagged «asynchronous»

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

14
禁止警告CS1998:此异步方法缺少“等待”
我有一些异步功能的接口。一些实现该接口的类没有什么可等待的,而有些则可能会抛出。所有警告都有些令人讨厌。 在异步功能中不使用等待时。 是否可以禁止显示该消息? public async Task<object> test() { throw new NotImplementedException(); } 警告CS1998:此异步方法缺少“等待”运算符,将同步运行。考虑使用“ await”运算符来等待非阻塞API调用,或者使用“ await Task.Run(...)”来在后台线程上执行CPU绑定的工作。
104 c#  asynchronous 


2
如何在异步/等待中使用RestSharp
我正在努力寻找一些使用RestSharp和async和的异步C#代码的现代示例await。我知道Haack最近有更新,但是我不知道如何使用新方法。 此外,我如何提供取消令牌,以便可以取消操作(例如,如果某人厌倦了等待,并按了应用程序UI中的“取消”按钮)。

3
在新的Promise()构造函数中使用async / await是一种反模式吗?
我正在使用该async.eachLimit函数来一次控制最大操作数。 const { eachLimit } = require("async"); function myFunction() { return new Promise(async (resolve, reject) => { eachLimit((await getAsyncArray), 500, (item, callback) => { // do other things that use native promises. }, (error) => { if (error) return reject(error); // resolve here passing the next value. }); }); } …

5
为什么此异步操作挂起?
我有一个多层.Net 4.5应用程序,该应用程序使用C#的new async和await挂起的关键字来调用方法,但我不知道为什么。 在底部,我有一个异步方法来扩展我们的数据库实用程序OurDBConn(基本上是基础DBConnection和DBCommand对象的包装器): public static async Task<T> ExecuteAsync<T>(this OurDBConn dataSource, Func<OurDBConn, T> function) { string connectionString = dataSource.ConnectionString; // Start the SQL and pass back to the caller until finished T result = await Task.Run( () => { // Copy the SQL connection so that we don't get two …


1
使用语句并等待关键字在C#中发挥很好
我遇到一种情况,我正在async调用返回和IDisposable实例的方法。例如: HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com")); 现在async,在现场之前,使用IDisposable实例时,使用“ response”变量的此调用和代码将包装在using语句中。 我的问题是,当async关键字混入时,这是否仍然是正确的方法?即使代码可以编译,在下面的两个示例中,using语句仍可以按预期工作吗? 例子1 using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"))) { // Do something with the response return true; } 例子2 using(HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.google.com"))) { await this.responseLogger.LogResponseAsync(response); return true; }

8
为什么不等待Task.WhenAll引发AggregateException?
在此代码中: private async void button1_Click(object sender, EventArgs e) { try { await Task.WhenAll(DoLongThingAsyncEx1(), DoLongThingAsyncEx2()); } catch (Exception ex) { // Expect AggregateException, but got InvalidTimeZoneException } } Task DoLongThingAsyncEx1() { return Task.Run(() => { throw new InvalidTimeZoneException(); }); } Task DoLongThingAsyncEx2() { return Task.Run(() => { throw new InvalidOperation();}); } …

5
异步Shell命令
我正在尝试使用Shell脚本来启动命令。我不在乎是否/何时/如何/为什么完成。我希望该过程开始并运行,但是我希望能够立即回到我的外壳...

5
等待直到任务完成
如何使我的代码等待,直到DispatchQueue中的任务完成?是否需要任何CompletionHandler或其他东西? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this will contain nil, of course, because it // will execute before the code above } 我正在使用Xcode 8.2并在Swift 3中编写。

22
如何在PHP中发出异步GET请求?
我希望对其他服务器上的另一个脚本进行简单的GET请求。我该怎么做呢? 在一种情况下,我只需要请求一个外部脚本,而无需任何输出。 make_request('http://www.externalsite.com/script1.php?variable=45'); //example usage 在第二种情况下,我需要获取文本输出。 $output = make_request('http://www.externalsite.com/script2.php?variable=45'); echo $output; //string output 老实说,我不想弄乱CURL,因为这实际上不是CURL的工作。我也不想使用http_get,因为我没有PECL扩展名。 fsockopen可以工作吗?如果是这样,该如何在不读取文件内容的情况下执行此操作?有没有其他办法? 谢谢大家 更新资料 我应该补充,在第一种情况下,我不想等待脚本返回任何内容。据我了解,file_get_contents()将等待页面完全加载等?
97 php  http  curl  asynchronous 

3
什么时候应该使用jQuery deferred的“ then”方法,什么时候应该使用“ pipe”方法?
jQuery的Deferred两个功能可用于实现功能的异步链接: then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks解析Deferred时调用的一个函数或函数数组。 failCallbacks拒绝Deferred时调用的一个函数或函数数组。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilter解析延迟时调用的可选函数。 failFilter拒绝Deferred时调用的可选函数。 我知道then()比pipe()这要长一些,因此后者必须增加一些额外的好处,但是到底有什么不同是我所不知道的。两者都使用几乎相同的回调参数,尽管它们的名称不同,并且返回a Deferred和返回a 之间的差异Promise似乎很小。 我已经读过一遍又一遍的官方文档,但总是觉得它们太“密集”,以至于无法真正绕开我的脑袋,搜索已经找到了很多关于一个功能或另一个功能的讨论,但是我还没有发现任何可以真正阐明不同之处的东西。各自的优缺点。 那么什么时候使用then更好pipe?什么时候使用更好? 加成 Felix的出色回答确实有助于阐明这两个功能的不同之处。但我想知道是否有时会比的功能then()更受欢迎pipe()。 显然,pipe()它的功能比强大then(),而且似乎前者可以做任何事,后者可以做。使用的一个原因then()可能是其名称反映了其作用,即终止处理相同数据的功能链的作用。 但是,是否有一个用例需要then()require返回由于返回新值而Deferred无法完成的原始操作?pipe()Promise

4
如何“等待”回调返回?
在使用简单的回调(例如以下示例)时: test() { api.on( 'someEvent', function( response ) { return response; }); } 如何更改功能以使用异步/等待?具体来说,假设“ someEvent”被保证只能被调用一次,我希望函数测试是一个异步函数,该异步函数在执行回调之前不会返回,例如: async test() { return await api.on( 'someEvent' ); }

6
CancellationToken的默认参数
我有一些要添加的异步代码CancellationToken。但是,在许多实现中都不需要这样做,因此我想有一个默认参数-也许CancellationToken.None。然而, Task<x> DoStuff(...., CancellationToken ct = null) 产量 不能将类型“”的值用作默认参数,因为没有对“ System.Threading.CancellationToken”类型的标准转换 和 Task<x> DoStuff(...., CancellationToken ct = CancellationToken.None) “ ct”的默认参数值必须是编译时常量 有什么办法可以为其设置默认值CancellationToken吗?

3
在Flask中进行异步任务
我正在Flask中编写一个应用程序,除了WSGI同步和阻塞之外,它的运行情况非常好。我特别有一项任务,该任务调出第三方API,该任务可能需要几分钟才能完成。我想拨打该电话(实际上是一系列电话)并使其运行。同时控制权返回给Flask。 我的看法如下: @app.route('/render/<id>', methods=['POST']) def render_script(id=None): ... data = json.loads(request.data) text_list = data.get('text_list') final_file = audio_class.render_audio(data=text_list) # do stuff return Response( mimetype='application/json', status=200 ) 现在,我要做的就是 final_file = audio_class.render_audio() 运行并提供在方法返回时要执行的回调,而Flask可以继续处理请求。这是我需要Flask异步运行的唯一任务,并且我想就如何最好地实现这一点提供一些建议。 我看过Twisted和Klein,但我不确定它们是否过大,因为Threading就足够了。或者也许芹菜是一个不错的选择?

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.