zoukankan      html  css  js  c++  java
  • C#流对象使用完后不立即释放的问题

     1 public class testwriter : MonoBehaviour {
     2 
     3     // Use this for initialization
     4     void Start () {
     5         
     6     }
     7     
     8     [MenuItem("Testx/test")]
     9     static void test()
    10     {
    11         //不正确写法:
    12         var writer = new StreamWriter(File.Create("Assets/test"));
    13         writer.Write(123);
    14         writer.Flush(); //刷新也没用,可以看到磁盘上文件老半天都是0KB
    15 
    16         //正确写法一
    17         writer = new StreamWriter(File.Create("Assets/test"));
    18         writer.Write(123);
    19         writer.Dispose();//使用完后立即释放
    20 
    21         //正确写法二
    22         using(var wrter = new StreamWriter(File.Create("Assets/test"))){
    23             wrter.Write(123);
    24             //wrter.Flush();//没必要刷新,出了范围后会立即将内容写到磁盘,可以看到磁盘文件立即是1K了
    25             //wrter.Dispose();//这个也没必要
    26         }//自动被释放
    27 
    28         //如果流对象在使用完后不立即释放可能会出现一些问题,在UNITY中出现了卡死现象:
    29         //具体操作为:按照上面不正确代码,执行后,打开磁盘,先是看到0KB的test文件,很快变成1KB,这时再切回UNITY
    30         //要么会卡死,要么提示:资源正在被另一进程使用,挂掉。
    31 
    32     }
    33     // Update is called once per frame
    34     void Update () {
    35         
    36     }
    37 }
  • 相关阅读:
    双写一致性的讨论
    webstorm设置新建vue文件的模板
    java基础类及方法
    中国大学零基础学Java语言练习题
    java基础继承
    java基础接口、继承、多态
    Windows、Mac 命令行启动程序(为了查看Electron打包后主进程日志)
    【Typescirpt】定义数字范围类型
    MRP
    Raid 学习
  • 原文地址:https://www.cnblogs.com/timeObjserver/p/7218595.html
Copyright © 2011-2022 走看看