我有线程在哪里下载xml文件我要在其他类中解析这个xml文件。现在我准备了线程,我可以下载它。 在MainForm我使用WaitForSingleObject,但是这个函数冻结了MainFrom,那么如何防止reezing并等待值呢? 感谢。
答案 0 :(得分:2)
首先,使用事件设计线程并使用Synchronize调用它们。
在MainForm中创建线程并为其分配事件处理程序:
Thread := TMyThread.Create(True);
Thread.OnDownload := DoDownload;
Thread.OnParse := DoParse;
// Other Events
Thread.Start;
你不应该在MainForm中等待。避免使用Windows消息方法,因为您的应用程序将失去平台可移植性,只是链接到WinXX编译。
答案 1 :(得分:0)
等待主线程并不是一个好的设计,但在某些情况下它可能是必要的。但是,在等待时,您仍然需要处理进入该线程的消息。
在MSDN上查看MsgWaitForMultipleObjects。