我有一个在工作线程上启动 SQL 批处理的主 UI 线程。
批处理可能会产生一些错误(阻塞)或警告(非阻塞)。
在第一种情况下,我最终回滚事务并退出线程。
在第二种情况下,我希望用户在 SQL 批处理中间查看警告消息:
- 一些数据被处理
- 产生了一些警告
- 用户评论这些消息
- 用户决定继续或停止批处理
- 批处理恢复或停止
我可以ShowDialog()
直接从工作线程中创建一个,但我不喜欢这个解决方案,因为这不是一个 UI 线程。
我的想法是通知主 UI 线程有关情况(“已生成警告”)并让工作线程休眠一段固定的时间(比如 500 毫秒)。bool?
每次线程唤醒时都会检查一个三态 ( ),如果它没有值,则线程再次休眠。
当用户查看警告并可能决定继续时,设置布尔值,下次工作线程唤醒时,它将知道是继续还是安全中止(回滚)批处理。
这是一个如此糟糕的设计模式吗?