gpt4 book ai didi

c# - 使用BackgroundWorker的请求似乎永远不会完成

转载 作者:行者123 更新时间:2023-12-02 20:46:28 30 4
gpt4 key购买 nike

我为登录表单创建了一个加载窗口,并使用BackgroundWorker制作平滑的加载动画,但是如果我使用ShowDialog()而不是Show() ,加载窗口停留在屏幕上,程序不执行任何操作。这是什么原因造成的?

这里我调用BackgroundWorker并显示加载页面:

private void loginButton_Click(object sender, EventArgs e) {
loadscr.Show();
LoginBV.RunWorkerAsync();
}

这里我关闭加载窗口:

private void LoginBV_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
loadscr.Close();
//and show the MainWindow, etc.
}

DoWork(BackgroundWorker)代码:

    private void LoginBV_DoWork(object sender, DoWorkEventArgs e) {
NameValueCollection POST = new NameValueCollection();
POST["username"] = ipbUN.Text;
POST["password"] = ipbPASS.Text;
POST["pin"] = ipbPIN.Text;
POST["csoport"] = "user";

var action = Program.startPOST<DataObj>("http://localhost/system/winapi.php?do=userlogin", POST);

finish["sessionkey"] = action.sessionkey;
finish["status"] = Convert.ToString(action.status);
}

最佳答案

参见MSDN article on ShowDialog .

"You can use this method to display a modal dialog box in your application. When this method is called, the code following it is not executed until after the dialog box is closed."

使用模态对话框 (ShowDialog) 会停止执行其后面的代码,直到某物/某人关闭该对话框。它“暂停”你的程序。后台工作程序永远不会运行,因为您在调用 ShowDialog 后启动它。

关于c# - 使用BackgroundWorker的请求似乎永远不会完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491512/

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