C# 什么是异步编程?

C# 什么是异步编程?,c#,multithreading,asynchronous,C#,Multithreading,Asynchronous,我最近一直在努力学习线程、线程安全,并遇到了一个非常大的术语“异步编程”。它完全把我弄糊涂了,我想知道是否有人能澄清我对它的一些问题,因为它确实把我弄糊涂了 在此之前,我认为“异步”的定义是不会同时发生,同时发生的术语是“同步” 如果你在谷歌上搜索,它确实是这么说的,但现在我知道异步编程是两件事情同时发生,至少在我看来是这样的 我在youtube上观看了一系列关于这一切的视频,他们解释说,编程中的异步就是在不影响主UI线程的情况下运行多个东西 现在,我理解了线程,你创建了一个新线程,它被添加到线

我最近一直在努力学习线程、线程安全,并遇到了一个非常大的术语“异步编程”。它完全把我弄糊涂了,我想知道是否有人能澄清我对它的一些问题,因为它确实把我弄糊涂了

在此之前,我认为“异步”的定义是不会同时发生,同时发生的术语是“同步”

如果你在谷歌上搜索,它确实是这么说的,但现在我知道异步编程是两件事情同时发生,至少在我看来是这样的

我在youtube上观看了一系列关于这一切的视频,他们解释说,编程中的异步就是在不影响主UI线程的情况下运行多个东西

现在,我理解了线程,你创建了一个新线程,它被添加到线程池中,线程的运行取决于你计算机上的内核数量,它们都运行了很短的时间,从而产生了所有线程并行运行的错觉

让我绊倒的是异步编程,现在我被告知创建新任务是异步编程,异步编程是否仅仅意味着在新线程上编码,因为到目前为止,两个操作同时运行的唯一方式是在不包括主线程(UI线程)的其他两个线程上运行。现在我想知道还有什么能让线程。。它是在自己的线程上运行的,这使它成为异步编程的一部分,还是我遗漏了一大块

有人能帮我澄清一下吗?

异步编程并不意味着“不能同时发生”;相反,它的意思是“不同步”,从编程的角度来看,这意味着您不能假设在两个异步对象之间发生事情的顺序

多线程可以是异步的,但也可以是异步的,例如,多台机器上的多个进程;相反,它的意思是“不同步”,从编程的角度来看,这意味着您不能假设在两个异步对象之间发生事情的顺序


多线程可以是异步的,但也可以是异步的,例如,在可能的多台机器上有多个进程。

阅读此链接:-您可能会比我的其他链接更喜欢此链接单词前面的字母
'a'
修改为“无”。例如,“非道德的”意思是“缺乏道德感;不关心某事的对错。”所以“异步”意思是不同步。事件之间没有特定的顺序或关系,而且完全可以编写只在单个线程上运行的异步代码。多线程是异步的,但异步不是多线程。请阅读:-这一个你可能会比我的其他链接更喜欢。单词前面的字母
'a'
改为“无”。例如,“非道德的”意思是“缺乏道德感;不关心某事的对错。”所以“异步”意思是不同步。事件之间没有特定的顺序或关系,而且完全可以编写只在单个线程上运行的异步代码。多线程是异步的,但异步不是多线程。