資源簡介
多個C#多線程開發實例
using System;
using System.Collections.Generic;
using System.Text;
namespace Example20
{
class Program
{
class Class1 : IDisposable
{
//析構函數,編譯后變成 protected void Finalize(),GC會在回收對象前會調用調用該方法
~Class1()
{
Dispose(false);
}
//通過實現該接口,客戶可以顯式地釋放對象,而不需要等待GC來釋放資源,據說那樣會降低效率
void IDisposable.Dispose()
{
Dispose(true);
}
//將釋放非托管資源設計成一個虛函數,提供在繼承類中釋放基類的資源的能力
protected virtual void ReleaseUnmanageResources()
{
//Do something...
}
//私有函數用以釋放非托管資源
private void Dispose(bool disposing)
{
ReleaseUnmanageResources();
//為true時表示是客戶顯式調用了釋放函數,需通知GC不要再調用對象的Finalize方法
//為false時肯定是GC調用了對象的Finalize方法,所以沒有必要再告訴GC你不要調用我的Finalize方法啦
if (disposing)
{
GC.SuppressFinalize(this);
}
}
}
static void Main(string[] args)
{
//tmpObj1沒有手工釋放資源,就等著GC來慢慢的釋放它吧
Class1 tmpObj1 = new Class1();
//tmpObj2調用了Dispose方法,傳說比等著GC來釋放它效率要調一些
//個人認為是因為要逐個對象的查看其元數據,以確認是否實現了Dispose方法吧
//當然最重要的是我們可以自己確定釋放的時間以節省內存,優化程序運行效率
Class1 tmpObj2 = new Class1();
((IDisposable)tmpObj2).Dispose();
}
}
}

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Example01
{
????class?Program
????{
????????class?Class1
????????{
????????????public?static?String?staticStr?=?“Class“;
????????????public?String?notstaticStr?=?“Obj“;
????????}
????????static?void?Main(string[]?args)
????????{
????????????//靜態變量通過類進行訪問,該類所有實例的某一靜態變量都是同一個值
????????????Console.WriteLine(“Class1‘s?staticStr:?{0}“?Class1.staticStr);
????????????Class1?tmpObj1?=?new?Class1();
????????????tmpObj1.notstaticStr?=?“tmpObj1“;
????????????Class1?tmpObj2?=?new?Class1();
????????????tmpObj2.notstaticStr?=?“tmpObj2“;
????????????//非靜態變量通過對象進行訪問,不同對象的同一非靜態變量可以有不同的值
????????????Console.WriteLine(“tmpObj1‘s?notstaticStr:?{0}“?tmpObj1.notstaticStr);
????????????Console.WriteLine(“tmpObj2‘s?notstaticStr:?{0}“?tmpObj2.notstaticStr);
????????????Console.ReadLine();
????????}
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12006??2007-04-05?01:39??CSharp25QExample\CSharp25QExample.sln
????..A..H.?????96256??2010-01-21?11:39??CSharp25QExample\CSharp25QExample.suo
?????文件??????16384??2007-04-08?12:17??CSharp25QExample\Example01\bin\Debug\Example01.exe
?????文件??????11776??2007-04-08?12:17??CSharp25QExample\Example01\bin\Debug\Example01.pdb
?????文件???????5632??2005-11-11?22:25??CSharp25QExample\Example01\bin\Debug\Example01.vshost.exe
?????文件???????1952??2007-04-02?11:53??CSharp25QExample\Example01\Example01.csproj
?????文件??????16384??2007-04-08?12:17??CSharp25QExample\Example01\obj\Debug\Example01.exe
?????文件??????11776??2007-04-08?12:17??CSharp25QExample\Example01\obj\Debug\Example01.pdb
?????文件????????142??2007-04-08?12:17??CSharp25QExample\Example01\obj\Example01.csproj.FileList.txt
?????文件????????154??2010-01-21?11:38??CSharp25QExample\Example01\obj\Example01.csproj.FileListAbsolute.txt
?????文件???????1038??2007-04-02?12:03??CSharp25QExample\Example01\Program.cs
?????文件???????1189??2007-04-02?11:53??CSharp25QExample\Example01\Properties\AssemblyInfo.cs
?????文件??????16384??2007-04-08?12:17??CSharp25QExample\Example02\bin\Debug\Example02.exe
?????文件??????11776??2007-04-08?12:17??CSharp25QExample\Example02\bin\Debug\Example02.pdb
?????文件???????5632??2005-11-11?22:25??CSharp25QExample\Example02\bin\Debug\Example02.vshost.exe
?????文件??????16384??2007-04-08?12:16??CSharp25QExample\Example02\bin\Debug\Example02Lib.dll
?????文件??????11776??2007-04-08?12:16??CSharp25QExample\Example02\bin\Debug\Example02Lib.pdb
?????文件???????2176??2007-04-02?13:14??CSharp25QExample\Example02\Example02.csproj
?????文件??????16384??2007-04-08?12:17??CSharp25QExample\Example02\obj\Debug\Example02.exe
?????文件??????11776??2007-04-08?12:17??CSharp25QExample\Example02\obj\Debug\Example02.pdb
?????文件???????2618??2007-04-08?12:17??CSharp25QExample\Example02\obj\Debug\ResolveAssemblyReference.cache
?????文件????????198??2007-04-08?12:17??CSharp25QExample\Example02\obj\Example02.csproj.FileList.txt
?????文件????????963??2007-04-02?13:24??CSharp25QExample\Example02\Program.cs
?????文件???????1189??2007-04-02?13:09??CSharp25QExample\Example02\Properties\AssemblyInfo.cs
?????文件??????16384??2007-04-08?12:16??CSharp25QExample\Example02Lib\bin\Debug\Example02Lib.dll
?????文件??????11776??2007-04-08?12:16??CSharp25QExample\Example02Lib\bin\Debug\Example02Lib.pdb
?????文件????????416??2007-04-02?16:34??CSharp25QExample\Example02Lib\Class1.cs
?????文件???????1961??2007-04-02?13:14??CSharp25QExample\Example02Lib\Example02Lib.csproj
?????文件??????16384??2007-04-08?12:16??CSharp25QExample\Example02Lib\obj\Debug\Example02Lib.dll
?????文件??????11776??2007-04-08?12:16??CSharp25QExample\Example02Lib\obj\Debug\Example02Lib.pdb
............此處省略371個文件信息
- 上一篇:C#微信企業號接收和發送消息
- 下一篇:C# 串口源碼
評論
共有 條評論