我得到我周圍的C#緩慢而穩步地方式笑在此代碼:訪問後臺工作
// create an instance of the main form
public formMain _formMain;
public void btnDynaDotCheck_Click(object sender, EventArgs e)
{
if (_formMain.bgWorker.IsBusy != true)
{
this.btnDynaDotCheck.Enabled = false;
_formMain.bgWorker.RunWorkerAsync("dr_begin_dd_check");
}
else
{
_formMain.returnMessage("Please wait untill the current task is finished...");
return;
}
}
我試圖從anotherForm訪問後臺工作在formMain.cs的.cs存在VS沒有錯誤,但運行時我得到
和「附加信息「類型的‘System.NullReferenceException’ 發生未處理的異常」:未將對象引用設置爲 的一個實例目的。」
在此行中:
if (_formMain.bgWorker.IsBusy != true)
,所以我沒有真正得到訪問在這種情況下,是嗎?
我想'_formMain == null'因爲你沒有實例化。 – stefankmitph
我同意stefankmitph,你的代碼已經聲明_forMain,但沒有實例化你的代碼嘗試操作的那個對象的實例。 – JohnH
mainform被實例化,但_formMain不是指那個實例。沒有必要實例化一個已經有一個mainform的新實例。將該實例傳遞給anotherForm的構造函數。 –