静态方法作为库

时间:2011-06-24 11:21:52

标签: c#

我只是使用静态方法将字节转换为图像。 在多线程环境中它是安全的还是我必须实例化 每次通话?

 namespace Library
 {

   public static class ByteToImage
   {
      public static Image Convert(byte[] byteArrayIn)
      {
          MemoryStream ms = new MemoryStream(byteArrayIn);
          Image returnImage = Image.FromStream(ms);
          return returnImage;
      }
   }
 }

3 个答案:

答案 0 :(得分:4)

它没有使用方法之外的任何东西所以它是线程安全的只要没有什么也在更新另一个线程中的byteArrayIn

namespace Library
{

   public static class ByteToImage
   {
      public static Image Convert(byte[] byteArrayIn)
      {
          Image returnImage = Image.FromStream(ms);
          return returnImage;
      }
   }
 }

<强>更新

我主动建议关闭流。正如评论中指出的那样,这个特定的操作要求流在图像的生命周期内保持打开状态。 See MSDN

但是,一般最好清理使用块中的流以确保完成。

答案 1 :(得分:1)

它没有使用共享资源,所以只要没有任何东西也在另一个线程中更新byteArrayIn,就像Colin所说的那样

答案 2 :(得分:0)

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

你的不使用任何共享资源,所以没关系 - 除非代码中的其他地方使用相同的图像。