操作时间较长导致界面卡住如何解决

操作时间较长导致界面卡住怎么解决?
对话框里有一个按钮,一个edit,点击按钮做一个操作,并把操作结果保存为文件,然后将文件内容读出并显示在edit里,但是这个操作时间比较长,导致点击按钮后界面就卡住了,怎么解决?希望说的详细些~

------解决方案--------------------
另起一个线程,用来做显示
------解决方案--------------------
开线程处理啊。如果文件内容过大的话很你的主线程会死掉的。
------解决方案--------------------
异步io
------解决方案--------------------
开一个线程吧。
------解决方案--------------------
多线程吧~
------解决方案--------------------
将大比量的数据访问,改成小批量的多次访问..或开一个工作者线程,绕开UI线程(主界面线程)
------解决方案--------------------
多线程。。。。。。。
------解决方案--------------------
耗时间的处理跟界面处理得分开,如果都在同个线程处理肯定会卡。楼主可以将文件处理放另个线程去做,做完了再通知界面就行。
------解决方案--------------------
开线程吧,我做的项目也是保存一个文件时间过长,导致用户浪费不少时间等待,然后开个线程去保存文件,同时用户可以继续操作
------解决方案--------------------
推荐异步IO
------解决方案--------------------
使用工作线程,简单又方便!
------解决方案--------------------
异步处理。
多线程用不好会更慢。
------解决方案--------------------
另开一个线程用于处理费时的操作,处理完后给界面线程发送消息通知就可以了
------解决方案--------------------
支持新开一个工作线程。需要代码的话说一声。
------解决方案--------------------
开一个(工作者线程,区别界面的用户线程)线程,把数据搞到内存后在刷新到界面上
------解决方案--------------------
可以异步处理,或是弄个进度条显示处理的进度·
------解决方案--------------------
大数据量显示到edit里确实会卡,可以考虑用一些更为强大的编辑控件。

------解决方案--------------------
在操作函数中(比如循环),定期调用以下代码:

while(GetMessage()){
TranslateMessage();
DispatchMessage();
}

主要是,在处理操作过程中,然主线程从消息队列获取消息,并处理消息,保证界面正常刷新。
楼上的一些异步IO,完成端口的建议,需要改动较大,
------解决方案--------------------
开线程处理。
------解决方案--------------------
要明白界面线程只有一个的原因是因为人的反应极限是20ms, 也就是说20ms后另一次键盘按下就会发生.
如果计算机每个动作都只要20ms之内完成,那自然可以不用开线程.
问题是预想的操作都是键盘消息都是前一次处理完要用户看到后才会处理下一个动作
------解决方案--------------------
多线程
------解决方案--------------------
_beginthreadex