会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
鹅群中的鸭霸
博客园
首页
新随笔
联系
订阅
管理
2023年2月2日
C# 线程同步查漏补缺
摘要: 同步构造 当线程 A 在等待一个同步构造,另一个线程 B 持有构造一直不释放,那么就会导致线程 A 阻塞。同步构造有用户模式构造和内核模式构造。 用户模式构造通过 CPU 指令来协调线程,所以速度很快。也意味着不受操作系统控制,所以等待构造的线程会不停自旋,浪费 CPU 时间。 内核模式构造通过操作
阅读全文
posted @ 2023-02-02 17:56 鹅群中的鸭霸
阅读(594)
评论(0)
推荐(5)
2023年1月31日
C# 线程查漏补缺
摘要: 进程和线程 不同程序执行需要进行调度和独立的内存空间 在单核计算机中,CPU 是独占的,内存是共享的,这时候运行一个程序的时候是没有问题。但是运行多个程序的时候,为了不发生一个程序霸占整个 CPU 不释放的情况(如一个程序死循环无法结束了,那么其他程序就没有机会运行了),就需要开发者给不同程序划分不
阅读全文
posted @ 2023-01-31 12:11 鹅群中的鸭霸
阅读(610)
评论(0)
推荐(7)
2022年3月12日
通过媒体查询来实现 WPF 响应式设计
摘要: WPF 客户端经常需要运行在各种不同大小屏幕下,为了显示友好,所以开发的时候都需要考虑响应式设计。 布局往往通过指定比例,而不直接指定准确的大小来实现响应式布局(如 Width="3*" ),但是具体控件的大小(如 Thickness、CornerRadius)就没有开箱即用的响应式功能了,用 vi
阅读全文
posted @ 2022-03-12 17:15 鹅群中的鸭霸
阅读(645)
评论(3)
推荐(5)
2022年3月4日
用 UI 多线程处理 WPF 大量渲染的解决方案
摘要: 众所周知, WPF 的 UI 渲染是单线程的,所以如果我们异步或者新建线程去进行数据处理的时候,处理完,想要更新 UI 的时候,需要调用一下 Dispatcher.Invoke,将处理完的数据推入到 Dispatcher 中,等待更新界面,不然就会报调用线程无法访问此对象,因为另一个线程拥有该对象的
阅读全文
posted @ 2022-03-04 18:44 鹅群中的鸭霸
阅读(3189)
评论(6)
推荐(6)
2022年3月1日
在 WPF 客户端实现 AOP 和接口缓存
摘要: 随着业务越来越复杂,最近决定把一些频繁查询但是数据不会怎么变更的接口做一下缓存,这种功能一般用 AOP 就能实现了,找了一下客户端又没现成的直接可以用,嗐,就只能自己开发了。 代理模式和AOP 理解代理模式后,对 AOP 自然就手到擒来,所以先来点前置知识。 代理模式是一种使用一个类来控制另一个类方
阅读全文
posted @ 2022-03-01 17:38 鹅群中的鸭霸
阅读(1720)
评论(4)
推荐(4)
2022年2月25日
使用 WebView2 封装一个生成 PDF 的 WPF 控件
摘要: 使用 WebView2 封装一个生成 PDF 的 WPF 控件 最近在迁移项目到 .net6,发现项目中用的 PDF 库不支持 .net6,于是想着换一个库。结果找了一大圈,发现不是版本不支持,就是收费。 嗐!还能咋办,只能自己搞一个 PDF 生成控件咯。 环境准备 WPF + WebView2 +
阅读全文
posted @ 2022-02-25 18:59 鹅群中的鸭霸
阅读(2002)
评论(1)
推荐(6)
2021年9月17日
WPF 通过多进程实现异常隔离的客户端
摘要: 当 WPF 客户端需要实现插件系统的时候,一般可以基于容器或者进程来实现。如果需要对外部插件实现异常隔离,那么只能使用子进程来加载插件,这样插件如果抛出异常,也不会影响到主进程。WPF 元素无法跨进程传输,但是窗口句柄(HWND)可以,所以可以将 WPF 元素包装成 HWND,然后通过进程间通信将插
阅读全文
posted @ 2021-09-17 18:40 鹅群中的鸭霸
阅读(1291)
评论(19)
推荐(11)
公告