private dialog frmDialog;
private Thread exportThread;
private Mutex mut;public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); frmDialog=new dialog(); frmDialog.btnThreadCancel.Click+=new EventHandler(btnThreadCancel_Click);
}private void button2_Click(object sender, System.EventArgs e)
{
if(mut==null) mut=new Mutex(); System.Threading.ThreadStart methodonthread=new ThreadStart(ExportUsingCOM);
exportThread=new Thread(methodonthread);
exportThread.Start(); frmDialog.ShowDialog();
}private void ExportUsingCOM()
{

try
{
mut.WaitOne();
System.DateTime stime=System.DateTime.Now; MyExcel excel=new MyExcel();
excel.processhanlder+=new ProcessEventHandler(changeprocessbar);
string path=Application.StartupPath+"\\" + stime.Ticks.ToString();;
excel.ExportExcel(ds.Tables[0],path,"test excel");

this.frmDialog.Invoke(new MethodInvoker(hideDialog)); System.DateTime etime=System.DateTime.Now;

DataRow row=dtCompared.NewRow();
row["export type"]="COM";
row["Row count"]=ds.Tables[0].Rows.Count.ToString();
row["start time"]=stime;
row["end time"]=etime;
row["cost time"]=etime-stime;
dtCompared.Rows.Add(row); //dataGrid2.Invoke(new MethodInvoker(SetDataGridDataSource));
mut.ReleaseMutex();
}
catch(ThreadAbortException abortException)
{
Console.WriteLine((string)abortException.ExceptionState);

}
} 我现起动一个线程导报表,然后主线程show一个模态的窗口
问题事当我第一次执行这端程序事,一切正常,再次点击导出报表救回报错,未将对象引用设置到对象的实例frmDialog.ShowDialog();程序是停在这一行上,请问是怎回事