Tag: asynchronous

如何在Python中每60秒asynchronous执行一次函数?

我想在Python上每60秒执行一个函数,但是我不想在此期间被阻塞。 我怎样才能asynchronous做到这一点? import threading import time def f(): print("hello world") threading.Timer(3, f).start() if __name__ == '__main__': f() time.sleep(20) 使用此代码,函数f在20秒内每3秒执行一次。 最后它给出了一个错误,我认为这是因为threading.timer还没有被取消。 我怎样才能取消它? 提前致谢!

如何使BackgroundWorker返回一个对象

我需要使RunWorkerAsync()返回一个List<FileInfo> 。 我怎样才能从一个后台工作人员返回一个对象?

并行调用asynchronous/等待函数

据我所知,在ES7 / ES2016中,将多个await的代码放在一起,类似于链接.then()和promise,这意味着它们将一个接一个地执行,而不是在parallerl中执行。 所以,例如,我们有这样的代码: await someCall(); await anotherCall(); 我是否正确理解anotherCall()仅在someCall()完成时才被调用? 平行调用它们的最优雅的方式是什么? 我想在Node中使用它,所以也许有一个asynchronous库的解决scheme? 编辑:我不满意在这个问题提供的解决scheme: 由于非平行等待asynchronous生成器中的承诺放缓 ,因为它使用生成器,我在问一个更一般的用例。

asynchronous编程和multithreading有什么区别?

我认为它们基本上是一样的 – 编写在处理器之间分配任务的程序(在具有2+处理器的机器上)。 然后,我正在阅读https://msdn.microsoft.com/en-us/library/hh191443.aspx ,它说 asynchronous方法旨在成为非阻塞操作。 asynchronous方法中的awaitexpression式在等待执行的任务正在运行时不会阻塞当前线程。 expression式将该方法的其余部分注册为continuation,并将控制返回给asynchronous方法的调用者。 asynchronous和等待关键字不会导致创build额外的线程。 asynchronous方法不需要multithreading,因为asynchronous方法不能在自己的线程上运行。 该方法在当前的同步上下文上运行,并且仅在该方法处于活动状态时才在该线程上使用时间。 您可以使用Task.Run将CPU绑定的工作移至后台线程,但后台线程无助于只等待结果可用的进程。 我想知道是否有人能为我翻译成英文。 它似乎在asynchronous性(是一个单词?)和线程之间作了区分,并暗示您可以拥有一个具有asynchronous任务但没有multithreading的程序。 现在我明白了asynchronous任务的概念,例如pg上的例子。 Jon Skeet的C#深入第三版 467页 async void DisplayWebsiteLength ( object sender, EventArgs e ) { label.Text = "Fetching …"; using ( HttpClient client = new HttpClient() ) { Task<string> task = client.GetStringAsync("http://csharpindepth.com"); string text = await task; label.Text = text.Length.ToString(); } } […]

如何强制顺序JavaScript执行?

我只find相当复杂的答案,涉及类,事件处理程序和callback(这似乎是一个有点大锤的方法)。 我认为callback可能是有用的,但我似乎不能在最简单的情况下应用这些。 看到这个例子: <html> <head> <script type="text/javascript"> function myfunction() { longfunctionfirst(); shortfunctionsecond(); } function longfunctionfirst() { setTimeout('alert("first function finished");',3000); } function shortfunctionsecond() { setTimeout('alert("second function finished");',200); } </script> </head> <body> <a href="#" onclick="javascript:myfunction();return false;">Call my function</a> </body> </html> 在此,第二个函数在第一个函数之前完成; 什么是最简单的方法(或者是否有)?强制第二个函数延迟执行,直到第一个函数完成? – -编辑 – – 所以这是一个垃圾的例子,但感谢大卫Hedlund我看到这个新的例子,它确实是同步的(与我的浏览器在testing过程中崩溃!): <html> <head> <script type="text/javascript"> function myfunction() { longfunctionfirst(); shortfunctionsecond(); } […]

RxJava并行获取可观测数据

在RxJava中实现并行asynchronous调用需要一些帮助。 我select了一个简单的用例,其中FIRST调用获取(而不是search)要显示的产品列表(Tile)。 随后的呼叫出去并取(A)REVIEWS和(B)产品图像 经过几次尝试,我到了这个地方。 1 Observable<Tile> searchTile = searchServiceClient.getSearchResults(searchTerm); 2 List<Tile> allTiles = new ArrayList<Tile>(); 3 ClientResponse response = new ClientResponse(); 4 searchTile.parallel(oTile -> { 5 return oTile.flatMap(t -> { 6 Observable<Reviews> reviews = reviewsServiceClient.getSellerReviews(t.getSellerId()); 7 Observable<String> imageUrl = reviewsServiceClient.getProductImage(t.getProductId()); 8 return Observable.zip(reviews, imageUrl, (r, u) -> { 9 t.setReviews(r); 10 t.setImageUrl(u); 11 return t; […]

如何创build一个asynchronous方法

我在我的C#应用​​程序中有简单的方法,它从FTP服务器中挑选文件并parsing它,并将数据存储在数据库中。 我希望它是asynchronous的,以便用户在App上执行其他操作,一旦parsing完成,他必须得到消息“parsing已完成”。 我知道它可以通过asynchronous方法调用来实现,但我不知道该怎么做,谁能帮助我?

你如何实现一个asynchronous操作委托方法?

一点背景资料。 我正在学习Web API堆栈,我试图用“Result”和“ErrorCodes”等参数封装所有数据。 但是,不同的方法会产生不同的结果和错误代码,但结果对象通常会以相同的方式实例化。 为了节省一些时间,也想了解更多关于asynchronous/等待C#中的function,我试图将我的web api动作的所有方法主体包装在一个asynchronous操作委托,但陷入了一个障碍… 鉴于以下类别: public class Result { public bool Success { get; set; } public List<int> ErrorCodes{ get; set; } } public async Task<Result> GetResultAsync() { return await DoSomethingAsync<Result>(result => { // Do something here result.Success = true; if (SomethingIsTrue) { result.ErrorCodes.Add(404); result.Success = false; } } } 我想写一个方法对Result对象执行一个操作并返回它。 通常是通过同步方法 public […]

将基于callback的asynchronous方法转换为等待任务的最佳方法

转换/包装使用callback的“经典”asynchronous方法返回(可等待的)任务的最佳方法是什么? 例如,给出以下方法: public void GetStringFromUrl(string url, Action<string> onCompleted); 我知道把这个包装成一个返回任务的方法的唯一方法是: public Task<string> GetStringFromUrl(string url) { var t = new TaskCompletionSource<string>(); GetStringFromUrl(url, s => t.TrySetResult(s)); return t.Task; } 这是完成这个的唯一方法吗? 有没有一种方法可以将调用包装到任务本身的GetStringFromUrl(url,callback)中(即调用本身将在任务内运行而不是同步)

asynchronous编程如何在单线程编程模型中工作?

我正在浏览node.js的细节,并且知道它支持asynchronous编程,尽pipe本质上它提供了一个单线程模型。 在这种情况下如何处理asynchronous编程? 是否像运行时本身创build和pipe理线程,但程序员不能明确地创build线程? 如果有人能指点我一些资源来了解这一点,那将是非常好的。