private void OpenFile()
{//省略打开文件代码
ThreadPool.QueueUserWorkItem(new WaitCallback(ReloadFile));
}
        string testFileTime;
        private void ReloadFile(Object stateInfo)
        {
            //检查文件是否变更,先把原始更改时间记录下来
            FileInfo aFile = new FileInfo(filename);
            testFileTime = aFile.LastWriteTime.ToString();
            //启动定时器
            timerCheckChanged.Enabled = true;
        }
        private void timerCheckChanged_Tick(object sender, EventArgs e)
        {
            FileInfo aFile = new FileInfo(filename);
//和全局更改时间变量进行校对,以判断文件是否发生了更改
            if (aFile.LastWriteTime.ToString() != testFileTime)
            {
                listViewExG.Clear();
                PaintListViewG();
                //Q:timerCheckChanged.Enabled = false;
            }
        }因为OpenFile完了之后主程序还有别的任务要处理(图形显示)
所以调用线程池里的线程,去启动定时器,并且想让该线程接管定时器来判断文件变更与否
结果是,定时器被  timerCheckChanged.Enabled = true;语句启动后,就没能进入timerCheckChanged_Tick事件处理方法,很是奇怪……
但如果我不调用线程池,直接主程序启动定时器,倒是可以完成任务多线程的不能调用定时器么?
另外,我想判断我文件是否被更改,如果我把//Q:timerCheckChanged.Enabled = false;这行加进去,那我更改了文件,能检测到,文件不关闭的情况下第二次更改文件,就没法检测到了,因为定时器已经关闭了所以想问,要如何才能检测文件是否关闭,检测文件关闭的时候再关闭定时器呢?谢谢大家,快没分了,只能给20了,大家体谅下小弟初学者吧~~