社区
C#
帖子详情
寻 "自动保存"及"程序异常退出重启后恢复原貌" 的最佳解决方案 WinForm
让爱延续
2011-05-21 05:21:30
如题,是C# WinForm的。
现在好多的编辑软件都是没有保存按钮的,例如 OneNote。
那这种自动保存怎样做最好呢?我现在用了Timer定时保存,请问大侠还有没有
更好的解决方案
?
程序异常退出后重启恢复原貌:这个小弟是菜鸟,一点思路也没有了,望大侠们指点。
先谢喽!
...全文
430
7
打赏
收藏
寻 "自动保存"及"程序异常退出重启后恢复原貌" 的最佳解决方案 WinForm
如题,是C# WinForm的。 现在好多的编辑软件都是没有保存按钮的,例如 OneNote。 那这种自动保存怎样做最好呢?我现在用了Timer定时保存,请问大侠还有没有更好的解决方案? 程序异常退出后重启恢复原貌:这个小弟是菜鸟,一点思路也没有了,望大侠们指点。 先谢喽!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
threenewbee
2011-05-21
打赏
举报
回复
[Quote=引用 6 楼 zaiduxinling 的回复:]
引用 4 楼 sjzlxd 的回复:
引用楼主 zaiduxinling 的回复:
如题,是C# WinForm的。
现在好多的编辑软件都是没有保存按钮的,例如 OneNote。
那这种自动保存怎样做最好呢?我现在用了Timer定时保存,请问大侠还有没有更好的解决方案?
程序异常退出后重启恢复原貌:这个小弟是菜鸟,一点思路也没有了,望大侠们指点。
先谢喽!
……
[/Quote]
那只有把所有的用户编辑操作都记录下来。
因为这么做会造成性能恶化,所以需要优化算法。
一个办法是,增量记录修改变化,当到达一定数量再合并。对于数据库程序,还要考虑事务性,并且正确回滚操作。
让爱延续
2011-05-21
打赏
举报
回复
[Quote=引用 4 楼 sjzlxd 的回复:]
引用楼主 zaiduxinling 的回复:
如题,是C# WinForm的。
现在好多的编辑软件都是没有保存按钮的,例如 OneNote。
那这种自动保存怎样做最好呢?我现在用了Timer定时保存,请问大侠还有没有更好的解决方案?
程序异常退出后重启恢复原貌:这个小弟是菜鸟,一点思路也没有了,望大侠们指点。
先谢喽!
所有需要保存的数据 的更改事件中……
[/Quote]
谢谢,和三楼的思路是一样的。
这样的思路可以判断出是否是异常退出了? 那 “恢复原貌”有没有好的策略呢? 最好能将程序异常退出前最后一刻的状态记录下来。 嘿嘿,要求是不是有点过了呀?
让爱延续
2011-05-21
打赏
举报
回复
[Quote=引用 3 楼 caozhy 的回复:]
定时保存就是最好的办法。或者利用输入空闲保存。
在配置里面(配置可以是ini,注册表、数据库,也可以是文档内的一个数据项)设置一个标志,打开的是置1,退出的时候置0。如果打开的时候发现不是0,说明上次没有正常退出。
[/Quote]
恩,这样的思路可以判断出是否是异常退出了? 那 “恢复原貌”有没有好的策略呢? 最好能将程序异常退出前最后一刻的状态记录下来。 嘿嘿,要求是不是有点过了呀?
人工智能算法
2011-05-21
打赏
举报
回复
[Quote=引用楼主 zaiduxinling 的回复:]
如题,是C# WinForm的。
现在好多的编辑软件都是没有保存按钮的,例如 OneNote。
那这种自动保存怎样做最好呢?我现在用了Timer定时保存,请问大侠还有没有更好的解决方案?
程序异常退出后重启恢复原貌:这个小弟是菜鸟,一点思路也没有了,望大侠们指点。
先谢喽!
[/Quote]
所有需要保存的数据 的更改事件中保存状态到配置文件或者注册表之类的.
并且记录关闭状态,如果只打开了未记录关闭状态则说明上次为异常退出 可进行适当操作.
threenewbee
2011-05-21
打赏
举报
回复
定时保存就是最好的办法。或者利用输入空闲保存。
在配置里面(配置可以是ini,注册表、数据库,也可以是文档内的一个数据项)设置一个标志,打开的是置1,退出的时候置0。如果打开的时候发现不是0,说明上次没有正常退出。
让爱延续
2011-05-21
打赏
举报
回复
[Quote=引用 1 楼 wangwang1103 的回复:]
这个还真不懂,不过Timer定时也是一个好方法啊。
[/Quote]
想问一下还有没有更好的解决方案。 最重要的问题是第二个:程序异常退出后重启恢复原貌。
wangwang1103
2011-05-21
打赏
举报
回复
这个还真不懂,不过Timer定时也是一个好方法啊。
C#
WinForm
高精度计时器实战:突破毫秒级定时瓶颈
在Windows桌面应用开发中,定时精度直接决定系统实时性与可靠性。传统.NET Timer受限于系统时钟粒度(约15.6ms)和消息循环调度,难以满足工控采集、音视频同步、串口协议解析等场景对≤1ms稳定触发的需求。C#高精度计时器通过调用QueryPerformanceCounter硬件计数器,绕过托管层调度,实现微秒级理论精度与±0.3ms实测稳定性。其核心价值在于为
WinForm
上位机提供确定性时间行为——既保障UI线程安全交互,又支撑后台毫秒级任务调度。本文聚焦PrecisionTimer.NET
C#语音自动朗读机器人:可中断、可监控、可嵌入的生产级实现
语音自动朗读是人机交互的基础能力,其本质是将文本语义转化为具备时间精度与上下文感知的音频流。核心原理在于TTS引擎调度、音频线程模型控制与实时事件响应机制,技术价值体现在确定性延迟、毫秒级可观测性及跨场景可嵌入性。典型应用场景包括智能客服播报、工业HMI语音反馈、无障碍辅助系统及边缘端离线语音服务。本文聚焦C#在Windows平台下基于System.Speech.Synthesis构建高可靠语音执行体的工程实践,深入解析STA线程约束、SAPI5 COM互操作、SSML语义节奏控制与可中断播放队列等关键环节
海康工业相机SDK开发实战:从环境搭建到实时图像采集避坑指南
工业相机是机器视觉系统的核心传感器,其SDK开发直接影响图像采集的实时性与稳定性。与普通网络摄像机不同,海康工业相机基于MVS平台与MvCameraSDK,采用独立的设备发现与回调机制。理解图像采集流程、像素格式转换、缓冲区管理等原理,能帮助开发者规避丢帧、偏色、掉线等常见问题。在产线测量、缺陷检测等场景中,通过C#或Python调用SDK实现实时取流,需重点关注巨型帧设置、回调线程模型及资源释放顺序。本文以海康工业相机为例,完整梳理SDK环境搭建、参数配置、回调采集及性能调优的实践路径,为视觉集成项目提供
LabVIEW+图莫斯实现UDS ECU刷写工具开发
ECU刷写是汽车电子产线核心环节,本质依赖CAN总线通信与UDS诊断协议栈的可靠实现。其技术原理涵盖物理层(CAN/CAN FD帧传输)、链路层(错误检测与仲裁)、应用层(ISO 14229-1定义的0x10/0x27/0x34等服务)三大层级。采用LabVIEW图形化开发可显著降低状态机建模、UI构建与部署复杂度,契合产线对‘所见即所得’和‘失败可追溯’的工程需求;图莫斯国产CAN FD接口卡则在成本、驱动兼容性及硬件时间戳精度(1μs)上形成差异化优势,支撑UDS关键时序(如0x27 Seed-Key超
Hermes Web UI:无需npm和PowerShell的轻量级工业监控Web界面
Web UI 是现代后端服务远程管理的基础能力,其核心在于将服务状态、日志、任务调度等能力通过浏览器统一呈现。传统方案常依赖 Node.js 生态(如 npm)、PowerShell 脚本或 Electron 框架,导致 Windows 工控环境部署门槛高、权限报错频发。Hermes Web UI 采用 Go 内置 HTTP 服务 + 嵌入式前端资源架构,彻底规避 npm 安装、PowerShell 执行策略限制与 Node.js 运行时依赖,实现双击即用。它支持与 C# 上位机、Linux Agent 无
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章