频繁读写剪贴板导致操作失败的bug

简介:

在家里的xp上装了SQL Server 2005,当在管理器里面出现错误信息提示窗口时,我们会发现这个窗口和Windows经典的Alert窗口有所不同,它增加了两个按钮。一个是复制错误信息,一个是查看错误详细信息。本来是很贴心的功能,没想到却出了问题,当我频繁点击Copy按钮后,系统就会出一个操作Clipboard的异常,详细信息如图:

    SQL Server 2005的管理抛出的错误提示窗口:
    SQL.2005.MsgBox.png

    异常详细信息如下:
    SQL.2005.AdvInfo.png

    频繁点击Copy(第一个)按钮,就会出以下异常:
    SQL.2005.MsgBox2.png

===================================
This message cannot be copied to the clipboard. (Microsoft SQL Server Management Studio)
===================================

Requested Clipboard operation did not succeed. (System.Windows.Forms)
------------------------------
Program Location:

   at System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
   at System.Windows.Forms.Clipboard.SetDataObject(Object data
, Boolean copy, Int32 retryTimes,  Int32 retryDelay)
   at System.Windows.Forms.Clipboard.SetDataObject(Object data,
 Boolean copy)
   at Microsoft.NetEnterpriseServers.AdvancedInformation.CopyToClipboard()

    这其实不是一个必然bug,我在公司的windows 2003上就无法复现,它和系统的状态有比较密切的关系。那么我们怎么在我们自己的程序中避免出现这样的问题呢?只是胡乱的try掉这个调用吗?

    从上面的异常信息堆栈中,我们可以看到.NET Framework 2.0为我们操作剪贴板提供了一个新的重载:
    System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)

    看来微软虽然看到了操作剪贴板具有不稳定性,结果却还是没有能完美的解决。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
Docker 容器
Docker学习笔记三:如何运行一个容器?
Docker学习笔记三:如何运行一个容器?
848 0
Docker学习笔记三:如何运行一个容器?
|
4月前
|
缓存 自然语言处理 搜索推荐
大模型上线前,我们到底该怎么测?一份来自一线的检查清单
本文分享大模型对话功能上线前的实战测试经验,直击“无标准答案、状态无限、结果不可复现、判断主观”四大难点,提炼出覆盖功能、性能、安全、体验的六类测试清单及红黄绿三色上线准入标准,助力同行少踩坑、稳上线。
|
4月前
|
存储 前端开发 JavaScript
如何避免密钥在前端硬编码?
如何避免密钥在前端硬编码?
585 154
|
6月前
|
机器学习/深度学习 人工智能 监控
构建AI智能体:六十五、模型智能训练控制:早停机制在深度学习中的应用解析
文章摘要:早停机制是深度学习中防止过拟合的关键技术,通过在验证集性能停止改善时终止训练,自动平衡模型复杂度和泛化能力。其核心价值包括自动防过拟合、提升训练效率(节省30-80%计算资源)、简化调参过程。关键参数设置涉及patience(容忍轮次)、min_delta(最小改善阈值)和restore_best_weights(恢复最佳权重)。实现流程包括训练轮次监控、验证集评估和性能改善判断,通过U型曲线分析可直观理解其工作原理。
755 20
|
2月前
|
弹性计算 监控 前端开发
阿里云服务器带宽收费价格,包年包月与按量付费价格与选择指南
阿里云服务器带宽计费分包年包月和按量付费两种模式。包年包月适合流量平稳、可预测的场景,如企业官网、电商平台等,通过阶梯定价和混合计费优化成本。按量付费则适合流量波动大、难以预测的业务,如临时测试、直播活动等,通过节省计划和自动伸缩降低成本。用户应评估业务流量模式、计算成本平衡点,考虑业务发展阶段,合理选择计费模式。
|
8月前
|
数据采集 JSON API
京东商品详情API秘籍!Python爬虫轻松获取SKU属性数据
京东商品详情API提供商品基础信息、实时价格、SKU规格及库存等120+字段,支持批量查询(单次200 SKU),数据延迟≤30秒,适用于价格监控、库存管理与竞品分析,基于HTTPS协议,返回标准化JSON格式。
|
机器学习/深度学习 人工智能 运维
利用AIOps实现智能运维:提升IT运维的新策略
在数字化迅速发展的今天,传统IT运维已难以应对日益复杂的系统。AIOps通过融合AI、机器学习和大数据技术,革新了IT运维方式。其核心优势包括预测性维护、自动化处理、智能分析和资源优化。AIOps平台能自动检测、诊断并解决IT问题,显著提升运维效率。尽管面临数据质量、模型准确性和技术复杂性等挑战,但AIOps正逐步成为智能运维的重要趋势。
|
存储 安全 API
利用环境变量管理敏感信息
【10月更文挑战第16天】在软件开发中,环境变量是管理敏感信息如API密钥、数据库密码等的安全方式,避免了将这些信息硬编码在源代码中。本文介绍了环境变量的概念、优势及如何在应用中实施,包括本地开发、CI/CD流程和云服务中的应用,以及实战技巧和最佳实践。
|
存储 算法 安全
SHA-1被攻破了吗? PostgreSQL SCRAM-SHA-256 安全认证机制解救你来了
标签 PostgreSQL , 认证方法 , SCRAM-SHA-256 , scram , scram-sha-256-plus , SASL , Simple Authentication and Security Layer 背景 PostgreSQL的很多设计非常的工业化,比如开放了许多扩展接口(类型、操作符、索引、扫描、采样、数据库编程语言等)。
7669 0
|
分布式计算 Hadoop 数据管理
Hadoop的SecondaryNameNode
【5月更文挑战第12天】Hadoop的SecondaryNameNode
510 6
Hadoop的SecondaryNameNode