我是winform的新手,我不知道如何使用BackgroundWorker。
基本上我想要做的是:
我有 1 个带有 2 个按钮的表单:“导入”和“退出”。当调用 ImporButton_Click 时,它所做的只是创建一个 HttpListener 并监听给定的 URL。ExitButton_Click 关闭表单。
问题是当我按下“导入”时,表单卡住了,它处于“无响应”状态,直到有人呼叫监听器并释放它。
我试图了解 BackgroundWorker 如何帮助我克服“卡住”的问题。我不明白如何调用 backgroundWorker1_DoWork 方法
到目前为止,这是我的代码:
//Program.cs
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ConfigurationForm());
}
}
//ConfigurationForm.cs
public partial class ConfigurationForm : Form
{
public ConfigurationForm()
{
InitializeComponent();
UrlTextBox.Text = @"enter URL here";
}
private void ImporButton_Click(object sender, EventArgs e)
{
try
{
String urlToListen = UrlTextBox.Text;
//Invoke MyListener
MyListener.StartListen(urlToListen); //assume this is implemented
}
catch (Exception exception)
{
string errorMsg = String.Format("An exception occured = {0}", exception);
MessageBox.Show(errorMsg);
}
}
private void ExitButton_Click(object sender, EventArgs e)
{
this.Close();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
}
}
所以现在怎么办 ?我如何调用 backgroundWorker1_DoWork ???
10x 给任何可以提供帮助的人