- 博客(4)
- 收藏
- 关注
原创 “阻塞”与“等待”的区别
当我们说一个操作是"阻塞"的,我们的意思是这个操作会停止线程的执行,直到某个条件得到满足。例如,在传统的同步I/O中,一个读操作会阻塞线程,直到数据可用为止。当我们说一个操作是"等待"的,我们的意思是这个操作会让出线程的控制权,直到某个条件得到满足。在没有数据可读的时候会"等待",但这并不意味着它会"阻塞"调用线程。在并发编程中,"阻塞"和"等待"的含义确实有些相似,但在异步编程的上下文中,它们有着不同的含义。的结果时,主线程会立即返回,可以去做其他的事情,而不是被阻塞,等待数据可用。
2023-05-31 14:24:18 1459 1
原创 C# 事件的几种声明方式
这种格式看起来像是声明了一个委托类型的字段,并用event关键字修饰,但实际上是声明了一个委托。编译器会自动为事件生成一个对应的委托类型的字段,然后在事件访问器中调用委托字段。首先,事件并不是特殊的委托,它本质上是委托字段的一个包装器(类似字段和属性的关系),对外界隐藏了委托实例的大部分功能,仅暴露 添加/移除事件处理器的功能。语法糖:字段式声明事件(field-like),事件处理器中也不用对参数进行类型转换。来声明事件,这样事件消息类型就不用继承。使用EventHandler声明事件。
2023-05-15 13:00:42 596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人