
wpf
asyncvoid最大问题是无法被等待、异常无法捕获、破坏异步可控性,仅应限于UI事件处理器等顶层入口;应优先使用asyncTask以支持await、异常传播、取消和调试。
APM是.NET早期基于IAsyncResult的异步模式,现已被淘汰,新项目完全不该使用;EAP主要用于旧UI框架,已标记过时;TAP是当前唯一推荐的标准异步模式,全面支持async/await、取...
Task不是Thread的封装,而是更高层的异步抽象;它可同步执行、线程池调度或纯异步等待,而Thread是开销大的操作系统级实体,Task默认复用线程池,支持await、组合、取消和非阻塞等待。
Avalonia使用DrawingContext在OnRender中进行跨平台高性能2D绘制,基于SkiaSharp构建向量指令并光栅化;需缓存资源、避免频繁Push/Pop、原点在左上角且单位为DI...
AvaloniaDataGrid不内置行拖拽排序,需手动实现:启用AllowDrop、监听鼠标事件捕获拖动项、动态计算插入位置并更新ObservableCollection,同时禁用默认选择避免冲突。
async/await是协作式异步模型,用于不阻塞线程、提升响应性;只对真正异步的I/O操作使用,避免滥用在CPU密集型或同步代码上,注意返回类型、禁止asyncvoid(除事件处理器)、禁用.Res...
Avalonia中DataGrid需手动实现行号列,推荐使用MultiBinding+IMultiValueConverter计算索引或ViewModel中维护RowNo属性,避免DataTable数...
Avalonia无内置PropertyGrid,推荐使用社区库Avalonia.PropertyGrid,支持自动反射、类型编辑器、特性控制(Browsable/ReadOnly/Category等)...
委托是类型安全的函数指针,用于传递方法;事件是受保护的委托封装,仅允许外部订阅/取消订阅,禁止直接调用或赋值。
推荐用IDialogContext接口实现关闭:ViewModel声明RequestClose事件,View订阅后调用Close();次选Messenger解耦跨窗口关闭,或附加属性绑定DialogR...