gpt4 book ai didi

c# - 使用 C#.Net 在 Windows 窗体应用程序中的弹出窗口中显示后台任务的进度

转载 作者:行者123 更新时间:2023-11-30 21:03:20 24 4
gpt4 key购买 nike

我在后台使用 xml 数据创建一些文件

Task.Factory.StartNew(() => xmlconvert(xx, yy));

现在,问题是如何使用带有一些消息和进度的 StatusStrip 控件或至少只是进度的滚动动画来显示此方法的进度。我只是不知道它是如何工作的。

更新:首先,此方法“xmlconvert(xx, yy)”有四种不同的形式,具体取决于用户在运行时选择的条件。在我的应用程序的主要形式中,用户可以选择不同的条件来处理数据。最后,当用户单击“创建”按钮时,将检查所有这些条件,并在该按钮单击事件中调用合适的方法。我需要显示在运行时调用的此方法的进度。

private void btnCreateRelease_Click(object sender, EventArgs e)
{
// Checks set of conditions

if(cond 1)
{
xmlconvert_1();
}
else if (cond2)
{
xmlconvert_2();
}
else if (cond3)
{
xmlconvert_3();
}
else if (cond4)
{
xmlconvert_4();
}
}

我想显示这些方法之一的进度,这些方法将在运行时根据条件调用。

非常感谢。

最佳答案

您可以为此使用 BackgroundWorker,这也非常简单。这是一个让您继续前进的示例:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
}

void Form1_Shown(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}

void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// Do your work in here.
xmlconvert(xx, yy);

for (int i = 0; i <= 100; i++)
{
backgroundWorker1.ReportProgress(i);
System.Threading.Thread.Sleep(100);
}
}

void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
}

这是 documentation 的链接.

为了让它在您的场景中工作,我建议您向 StatusStrip 控件添加一个进度条,并从 backgroundWorker1_ProgressChanged 事件中更新它。

关于c# - 使用 C#.Net 在 Windows 窗体应用程序中的弹出窗口中显示后台任务的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12954078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com