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 }
  • 相关阅读:
    mock数据
    关于适配各种浏览器的图片预览。
    闭包
    兼容性 适配
    递归 使用callee
    webservice的model层命名空间不同的问题
    删除右键菜单中的Git
    windows server core 设置shell 及切换
    设置共享用户名密码
    Windows Remote Shell(WinRM)使用介绍
  • 原文地址:https://www.cnblogs.com/timeObjserver/p/7218595.html
Copyright © 2011-2022 走看看