c#异步与同步的区别,请专业人士回答

异步询问IAsyncResult.Iscompleted
异步等待IAsyncResult.waithandle.waitone
上面的两个异步方法也是需要等到异步完成的时候才继续主线程。这和同步的含义不是一样吗??为什么异步询问、异步等待算是异步的不是同步的
还有两个问题
1.IAsyncResult.waithandle.waitone () 第二个参数是bool类型是什么意思?
什么叫上下文同步域,能不能打个比方
2.一般是两个线程,主线程和异步线程,若我要有三个线程怎么办

佩服!一楼解释的刚好相反!
---
还拿做饭烧水说:
使用同步方法:做完饭,再烧水!
假如,做饭时间为3,烧水时间为2,使用同步方法,做饭时间就延续为5,与搁置3的烧水同步完成,之后你才可以开始另外的工作。

使用异步方法:开两个火(两个线程),一个烧水一个做饭。
IAsyncResult代表其中任意一个的完成结果。
IAsyncResult.Iscompleted其中一个完成!(应该是烧水先完成),你可以使用IAsyncResult.waithandle.waitone (等待做饭完成,使用做饭那个火来炒菜),当然也可以用烧水的活来开始炒菜。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-18
简单点吧, 异步处理就是,你现在问我问题,我可以不回答你,等我用时间了再处理你这个问题.同步不就反之了.
第2个回答  2008-04-16
作饭和烧开水,烧开水的时间里作饭就是同步。如果炒鸡蛋,再这段时间里不能干其他的事情,这就是异步