我的程序中有处理文本文件(每个可能有几万行),因需要时间比较长,每处理一个需要显示正在处理的文本的文件名,我用label控件显示,但无法更新,只有在全部处理完了以后才显示最后一个处理的文件名,请教大家有没什么办法~~~~(原来用delphi可以用Application对象更新,但c#好象不行)

解决方案 »

  1.   

    利用这个试一下
    private void label1_TextChanged(object sender, System.EventArgs e)
    {
    label1.Invalidate();
    }
      

  2.   

    用两个线程,UI线程负责显示文件名
    第二个线程用来处理文件,处理完成时触发一个事件,UI线程来定阅这个事件显示正在处理的文件名
      

  3.   

    WinApp也存在这个刷新的问题? 你的程序是不是哪里在处理显示的过程中逻辑有错误啊?
      

  4.   

    一定要用线程才行吗? 有没有通知窗口更新的函数,就象delphi一样的~~~~~
      

  5.   

    通知窗口更新的函数可以使用Application.DoEvents,不过这种方法不如线程速度快,效果也不好
      

  6.   

    用 label.Refresh(); 可以强制刷新 Label 控件,不过这样 Label 控件可能有闪烁。对于其他的控件类同。