我所了解的.NET异步编程是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3070个文字,预计阅读时间需要13分钟。
对于异步操作,大家普遍认为耗时较长。准确来说,方法执行后立即返回,待执行完毕会进行通知。也就是说,当一个任务正在执行时,如果是需要耗时长进行处理的任务,就会立即返回,等待处理完毕后再通知结果。
对于异步,相信大家都不十分陌生。准确点来说就是方法执行后立即返回,待到执行完毕会进行通知。就是当一个任务在执行的时候,尤其是需要耗费很长的时间进行处理的任务,如果利用单线程进行操作的话,势必造成界面的阻塞;而利用异步方式,则不会出现这种情况。 区别于同步处理,可以说阻塞的异步其实就相当于同步。
同步方式的实现
先来看一个同步的例子:
假设现在我们需要导入文本文件的内容,然后对文件内容做处理。那么这就需要分为两步来进行,第一步是导入文本内容,我们利用函数A表示;第二部就是处理文本,我们利用函数B来表示。假设现在A不执行完,B不能进行。而且由于文本内容非常大,导入需要十几到几十分钟不等,那么我们得提示用户导入进度,这里就涉及到了界面交互问题。利用同步方式来做,效果如何呢?首先请看运行效果:
其实上面的图片是我运行了一段时间的程序的截图,但是由于作用在了同步模式下,导致界面阻塞,从而产生极差的用户体验。
本文共计3070个文字,预计阅读时间需要13分钟。
对于异步操作,大家普遍认为耗时较长。准确来说,方法执行后立即返回,待执行完毕会进行通知。也就是说,当一个任务正在执行时,如果是需要耗时长进行处理的任务,就会立即返回,等待处理完毕后再通知结果。
对于异步,相信大家都不十分陌生。准确点来说就是方法执行后立即返回,待到执行完毕会进行通知。就是当一个任务在执行的时候,尤其是需要耗费很长的时间进行处理的任务,如果利用单线程进行操作的话,势必造成界面的阻塞;而利用异步方式,则不会出现这种情况。 区别于同步处理,可以说阻塞的异步其实就相当于同步。
同步方式的实现
先来看一个同步的例子:
假设现在我们需要导入文本文件的内容,然后对文件内容做处理。那么这就需要分为两步来进行,第一步是导入文本内容,我们利用函数A表示;第二部就是处理文本,我们利用函数B来表示。假设现在A不执行完,B不能进行。而且由于文本内容非常大,导入需要十几到几十分钟不等,那么我们得提示用户导入进度,这里就涉及到了界面交互问题。利用同步方式来做,效果如何呢?首先请看运行效果:
其实上面的图片是我运行了一段时间的程序的截图,但是由于作用在了同步模式下,导致界面阻塞,从而产生极差的用户体验。

