我何时才能打电话给DoEvents?

qJa*_*ake 3 c# doevents

如果我循环执行一个延长的操作(比如说,处理文件)并且我想更新进度条,我需要使用DoEvents,这是我能理解的.

但是在函数的每个循环中调用它只会导致进度条的动画播放速度非常快(或者很慢,具体取决于操作).我知道这是因为DoEvents允许进度条"呼吸",因为没有更好的单词,导致它和表单的其余部分刷新.

我的问题是,你怎么知道调用DoEvents是合适的?显然你不能只是随心所欲地调用它 - 通常你会觉得它 - 这会导致零星的动画等等.那么是否有一些快速方法来检查表单/应用程序是否需要调用DoEvents?

qJa*_*ake 8

哦,呃 - 我只是打了自己.

我应该使用后台线程来处理,并保留UI线程.