火球法师
精华
|
战斗力 鹅
|
回帖 0
注册时间 2012-12-14
|
这东西搞得整个工具没法用了。
写入XML之后它不会马上刷新,而是等整个流程走完了它才刷新。
然后它的触发事件不仅仅是延迟执行,而且延迟后还执行了两次!
都搞不懂它的执行顺序了。
-
- private Thread invokeThread; //定义线程
- private delegate void deleLOAD(); //定义一个委托【调用LoadXML()的委托】
- private delegate void deleSetXML(); //定义一个委托【调用SaveToXML()的委托】
- private delegate void dCloserTextBox(); //定义一个委托【调用CloserTextBox()的委托】,用于清空文本框
- private void Form1_Load(object sender, EventArgs e) //预先载入内容
- {
- getTimeStr(); //取得时间命名
- LoadXML(); //读取XML文件
- txt_socpathtoRAR = str_opt + "\\SaveRAR.txt"; //读取RAR用.源文件列表的物理地址
- invokeThread = new Thread(new ThreadStart(UsingFileSystemWatcher));//使用线程来调用流文件监视方法()
- invokeThread.Start(); //线程开始
- }
- void UsingFileSystemWatcher() //流文件监视XML
- {
- FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
- fileSystemWatcher.Path = Application.StartupPath; //设置监控的文件目录
- fileSystemWatcher.IncludeSubdirectories = false; //设置监控目标目录下的所有子目录
- fileSystemWatcher.Filter = "*.xml"; //设置监控文件的类型
- fileSystemWatcher.Changed += FileSystemWatcher_Changed; //设置文件的文件名、目录名及文件的大小改动会触发Changed事件
- fileSystemWatcher.EnableRaisingEvents = true; //启动监控
- }
- void FileSystemWatcher_Changed(object sender, FileSystemEventArgs e) //流文件监视法-触发Changed事件后执行的方法
- {
- //Invoke(newdCloserTextBox(CloserTextBox)); //UI线程调用委托(清空文本框)
- Invoke(new deleLOAD(LoadXML)); //UI线程调用委托(读取XML方法)
- }
复制代码
|
|