C#流对象使用完后不立即释放的问题
生活随笔
收集整理的這篇文章主要介紹了
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 }
?
轉載于:https://www.cnblogs.com/timeObjserver/p/7218595.html
總結
以上是生活随笔為你收集整理的C#流对象使用完后不立即释放的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript单线程
- 下一篇: Android插件化(使用Small框架