如何在C#中同步冗长的进程

时间:2014-12-10 09:48:16

标签: c# .net wpf hang

我不知道应该如何提出问题的标题,但我在基于窗口的应用程序C#代码中遇到了一个问题。

基本上我在C#中创建2个WPF应用程序

  1. 对于我的第一个应用程序,有以下步骤

    一个。我正在通过C#代码创建一些文件夹并在TextBox上显示状态。

    B中。然后我通过C#代码解压缩文件夹并将文件复制到C盘中的新文件夹位置。这次我还要在TextBox中显示状态。

  2. 但第二步有问题。复制文件阻止了第一步,以在TextBox中显示状态。我希望它应该首先在TextBox中显示状态,然后它应该启动应对文件。现在它在处理文件后在TextBox中显示完整的消息。 :(

    1. 对于我的第二个应用程序,我在List中加载了超过3000个数据的XML。因此,加载并显示列表中的项目会阻止整个应用程序。那我怎么解决这个问题?
    2. 我是.net的新手,所以请帮助我。

1 个答案:

答案 0 :(得分:2)

您需要使用Threads或Background Workers来完成此任务。当您在单个应用程序中执行某些工作时,您的UI将被阻止,直到某个长任务完成[在您更新文本框的情况下]。

另外,要访问不在自己的线程[原始线程]内的UI组件,您需要调用。浏览指南并尝试调整其中的技巧。根据我的经验,“背景工作者”很容易使用。

指南 -

Backgorund workers

Invokes

Updating UI- in your case show progress