Asynchronous UWP/WinRT:是否保证按照创建的顺序完成多个异步任务?

Asynchronous UWP/WinRT:是否保证按照创建的顺序完成多个异步任务?,asynchronous,windows-runtime,win-universal-app,c++-cx,Asynchronous,Windows Runtime,Win Universal App,C++ Cx,我有一个文本框,每次更新时都要不断保存到磁盘上。我已经将一个属性的数据绑定到它的内容,并且我计划在属性的setter中添加代码以保存更改。我熟悉Textbox UpdateSourceRigger属性 每次调用save都将调用WriteTextAsync。如果每次有人输入文本框时文本框都在保存,这可能会生成大量异步保存调用。我的简单问题是,异步写调用是否保证不会发生冲突,并按照创建异步任务的顺序执行 我已经通读了有关通用Windows平台异步编程的内容,但我找不到任何明确说明这一点的内容。您将找

我有一个文本框,每次更新时都要不断保存到磁盘上。我已经将一个属性的数据绑定到它的内容,并且我计划在属性的setter中添加代码以保存更改。我熟悉Textbox UpdateSourceRigger属性

每次调用save都将调用
WriteTextAsync
。如果每次有人输入文本框时文本框都在保存,这可能会生成大量异步保存调用。我的简单问题是,异步写调用是否保证不会发生冲突,并按照创建异步任务的顺序执行


我已经通读了有关通用Windows平台异步编程的内容,但我找不到任何明确说明这一点的内容。

您将找不到任何明确说明这一点的内容。这正是多线程开发的本质

this could be generating a ton of asynchronous save calls
你的常识是正确的。可能出现的问题: 保存可能会按顺序完成。
如果每次关闭并打开文件,则保存可能会相互冲突,从而导致访问异常

My simple question is, are the asynchronous write calls guaranteed to not collide and to execute in the order in which their asynchronous tasks were created?
没有。它们一定会在某个点上发生碰撞,并且在某个点上,它们一定会按照从它们开始的顺序完成执行。有限制的测试可能会显示这是可以的,但您将面临上述问题的风险,这将是不好的做法


您可以创建一个跟踪更改的管理器。管理器会将所有请求的更改放在一个队列中,管理器是唯一更新文本文件的线程。

您不会发现任何明确说明这一点的内容。这正是多线程开发的本质

this could be generating a ton of asynchronous save calls
你的常识是正确的。可能出现的问题: 保存可能会按顺序完成。
如果每次关闭并打开文件,则保存可能会相互冲突,从而导致访问异常

My simple question is, are the asynchronous write calls guaranteed to not collide and to execute in the order in which their asynchronous tasks were created?
没有。它们一定会在某个点上发生碰撞,并且在某个点上,它们一定会按照从它们开始的顺序完成执行。有限制的测试可能会显示这是可以的,但您将面临上述问题的风险,这将是不好的做法

您可以创建一个跟踪更改的管理器。管理器将把所有请求的更改放在一个队列中,并且管理器是唯一更新文本文件的线程