C# c窗口窗体

C# c窗口窗体,c#,C#,我有一个返回一些字符串消息的处理程序。我怎样才能把它们写进申请表?我的意思是,我希望每次激活处理程序时都能将结果打印到windows窗体中。我现在需要使用线程。我不知道如何以编程方式创建和添加处理消息时弹出的表单名称的更改。有人能告诉我怎么做吗?我想你在后台有一些工作要做,每当有进展时,你不想更新表格 然后我会使用backgroundworker: BackgroundWorker bw = new BackgroundWorker(); public Form1() { Initial

我有一个返回一些字符串消息的处理程序。我怎样才能把它们写进申请表?我的意思是,我希望每次激活处理程序时都能将结果打印到windows窗体中。我现在需要使用线程。我不知道如何以编程方式创建和添加处理消息时弹出的表单名称的更改。有人能告诉我怎么做吗?

我想你在后台有一些工作要做,每当有进展时,你不想更新表格

然后我会使用backgroundworker:

BackgroundWorker bw = new BackgroundWorker();
public Form1()
{
    InitializeComponent();
    bw.DoWork += new DoWorkEventHandler(bw_DoWork);
    bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
    bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
}



private void bw_DoWork(object sender, DoWorkEventArgs e)
{
    BackgroundWorker worker = sender as BackgroundWorker;

    for (int i = 1; (i <= 10); i++)
    {
        if ((worker.CancellationPending == true))
        {
            e.Cancel = true;
            break;
        }
        else
        {
            // Perform a time consuming operation and report progress.
            System.Threading.Thread.Sleep(500);
            worker.ReportProgress((i * 10)); //Activating the progressChanged event
        }
    }
}
工作进程完成执行后,将触发RunWorkerCompleted事件

private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if ((e.Cancelled == true))
    {
        this.tbProgress.Text = "Canceled!";
    }

    else if (!(e.Error == null))
    {
        this.tbProgress.Text = ("Error: " + e.Error.Message);
    }

    else
    {
        this.tbProgress.Text = "Done!";
    }
}

这些处理程序是在哪里定义的?为什么您认为您需要使用线程?请发布代码并阅读以下内容:。因为我希望每次激活处理程序时都能弹出一个表单。为什么这需要线程?应用程序中的哪个事件会激活此处理程序?处理程序起源于何处?该在何处编写此方法?大体上?我应该如何使用这些方法?
private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if ((e.Cancelled == true))
    {
        this.tbProgress.Text = "Canceled!";
    }

    else if (!(e.Error == null))
    {
        this.tbProgress.Text = ("Error: " + e.Error.Message);
    }

    else
    {
        this.tbProgress.Text = "Done!";
    }
}