随笔分类 -  C# / 异步编程

摘要:这个问题很奇怪,情况是当我使用Threading.Timer计时器时,每隔一段事件自动触发一个回调方法。在回调方法中为了修改UI控件。使用了Dispatcher.BeginInvoke()方法来显示一个窗口,但我发现这个窗口总是弹不出来。换成Invoke()就好了。 由于Threading.Time 阅读全文
posted @ 2025-08-19 19:49 Ytytyty 阅读(43) 评论(0) 推荐(0)
摘要:在编写程序的通讯模块时,涉及到了TCP通讯。模块的设计思路是,开启TCP端服务器后在一个线程中实时监听端口号,为每一个连接进来的客户端分配一个线程用来实时通信。 服务端在关闭时通过将标志位取反实现线程的结束,从而关闭服务端。 下面这段代码看着没什么问题,但关键就在于this.ServerSocket 阅读全文
posted @ 2025-08-17 22:56 Ytytyty 阅读(35) 评论(0) 推荐(0)
摘要:此处,主要涉及到一些概念的辨析。 多线程与异步编程的区别 异步并不意味着多线程,单线程同样可以异步(单线程异步、多线程异步)。多线程更像操作系统中的"并行执行",而异步编程则对应着”并发执行“。 异步默认借助线程池实现。 多线程经常阻塞,而异步要求不阻塞。多线程编程时,为了防止死锁,往往需要直接阻塞 阅读全文
posted @ 2025-07-19 17:13 Ytytyty 阅读(74) 评论(0) 推荐(0)