gpt4 book ai didi

c# - Backgroundworker 的正确使用方法

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:09 25 4
gpt4 key购买 nike

我正在使用 backgroundworker 来显示加载屏幕。

DO 事件如下所示:

private void bwLoadingScreen_DoWork(object sender, DoWorkEventArgs e)
{
_ls = new LoadingScreen();
_ls.Show();
while (!bwLoadingScreen.CancellationPending)
{
Application.DoEvents();
}
}

我使用以下代码来处理加载屏幕:

if (_ls.InvokeRequired && !_ls.IsDisposed)
{
Invoke(new MethodInvoker(delegate
{
_ls.Close();
_ls.Dispose();
}));
}
else if (!_ls.IsDisposed)
{
_ls.Hide();
_ls.Dispose();
}

我应该为此使用 RunWorkerCompleted 事件吗?这是使用 Backgroundworker 的正确方法吗?

最佳答案

我觉得你这样做有点倒退。 Backgroundworker 应该在您的主进程显示当前表单并可能更新它时完成工作。当 backgroundworker 完成加载您的数据时,它应该在 backgroundworker 事件“RunWorkerCompleted”中的主线程中处理它。

这也将简化您的代码,因为您不需要在关闭或隐藏表单之前进行调用。

我希望这能回答您的问题。//翻转

关于c# - Backgroundworker 的正确使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521680/

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