静态方法作为库
本文关键字:静态方法 | 更新日期: 2023-09-27 18:00:30
我只需使用一个静态方法将字节转换为图像。在多线程环境中,它是安全的还是应该实例化每个电话?
namespace Library
{
public static class ByteToImage
{
public static Image Convert(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
}
它没有使用方法之外的任何东西,因此它是线程安全的,只要没有任何东西也在更新另一个线程中的byteArrayIn
。
namespace Library
{
public static class ByteToImage
{
public static Image Convert(byte[] byteArrayIn)
{
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
}
更新
我最初建议关闭这条小溪。然而,正如评论中所指出的,这种特殊的操作要求流在图像的整个生命周期内保持开放。请参阅MSDN
然而,通常清理使用块中的流以确保完成总是一个好主意。
它没有使用共享资源,所以只要没有任何东西也像Colin所说的那样在另一个线程中更新byteArrayIn就可以了
如果静态方法不使用任何共享资源,那么它们是线程安全的。
您的不使用任何共享资源,所以这是可以的——除非代码中的其他地方使用相同的映像。