錯誤訊息如下
解決方式
1.資料夾=>右鍵內容=>安全性
2.點選”編輯”=>加入Everyone的權限 =>確定
3.點選"進階"
4.點"Everyone"=>點擊"變更權限"
5.勾選"以這個物件的繼承權限取代所有子物件的權限"
有空就寫寫,貼貼~就醬
前提:
當有類似A Form呼叫B Form ,使用者須於B處理資料以後,更新回A的需求時,通常會在B的程式裡加上A的屬性,如下:
A Form 畫面
B Form 畫面
寫法如下:
B Form定義A Form的屬性,將A Form傳回
public GCTestMain MainForm
{
get;
set;
}
因此當B更新資料以後,要傳回給A時,直接呼叫A進行資料更新,並關閉如下:
MainForm.dataGridView1.DataSource = null;
MainForm.dataGridView1.Refresh();
MainForm.dataGridView1.DataSource = this.dataGridView1.DataSource;
MainForm.dataGridView1.Refresh();
this.Close();
但記憶體卻始終沒回收:
解決方式:
在B Form呼叫A Form 更新資料以後,強制GC回收,如下:
MainForm.dataGridView1.DataSource = null;
MainForm.dataGridView1.Refresh();
GC.Collect();
GC.WaitForPendingFinalizers();
MainForm.dataGridView1.DataSource = this.dataGridView1.DataSource;
MainForm.dataGridView1.Refresh();
this.Close();
很快的就會看到效果(測試程式裡的GRID有66萬筆資料,所以記憶體佔3百多MB是正常的):
| 反應: |