c# - 如何经常将图像保存到 Windows 窗体 (C#) 中的文件?
问题描述
我用 C# 写了一些东西,比如
while(1){
Bitmap b = BitMapFromSomewhereElse();
b.save("a.jpg");
}
为了让图像实时更新。但我总是得到 System.Runtime.InteropServices.ExternalException: Generic error in GDI+
这里有什么问题?可能是我写的太快了,如果我一次循环500ms,几秒钟后就会出现错误,如果我一次循环5000ms,错误不会出现。我搜索并尝试了很多方法,例如调用 Dispose() 或 using(b=...)... 但这些方法都不起作用。
解决方案
也许问题是你没有释放资源。Bitmap
是一次性物品,所以你应该处理它:
while(1){
using (Bitmap b = BitMapFromSomewhereElse()) {
b.save("a.jpg");
}
}
这实际上取决于BitMapFromSomewhereElse
每次调用它时是否创建一个新位图,或者它是否只是返回对现有位图的引用。如果是前者,那么您需要调用Dispose
. 如果是后者,那么就Dispose
没有必要了,只要创建位图的东西最初最终在某个时候处理它。
推荐阅读
- node.js - 使用条件表达式“attribute_not_exists(PK)”总是解析为真
- c# - 将字节数组写入地址
- compression - IPv6 地址压缩
- react-bootstrap - How to automatically put cursor in newest row react-bootstrap-table-next
- python - Multiple version of python but only one works
- mysql - MySQL使用一个查询从至少一个表中删除行
- c - Linux recvmsg()没有从套接字获取软件时间戳
- python-venv - Apache Superset 在我的浏览器中不可用
- typescript - 是否可以在 TypeScript 中设置特定的编译目标来转换代码以获得更高的性能?
- ansible - 将变量转义为字符串