静态方法作为库

本文关键字:静态方法 | 更新日期: 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就可以了

如果静态方法不使用任何共享资源,那么它们是线程安全的。

您的不使用任何共享资源,所以这是可以的——除非代码中的其他地方使用相同的映像。