【问题标题】:Main thread showing a form as dialog, how to close it programmatically by using worker thread?将表单显示为对话框的主线程,如何使用工作线程以编程方式关闭它?
【发布时间】:2012-01-31 09:42:16
【问题描述】:

我想关闭一个由主线程显示为对话框的表单。我正在使用 beginInvoke 来显示该对话框,并希望在工作线程完成自己的任务时关闭或隐藏。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    如果您使用的是 BackgroundWorker,则有一个可用事件:“OnRunWorkerCompleted” - 如果工作人员已完成,则会触发。

    您可以使用此事件来关闭您的表单。

    【讨论】:

    【解决方案2】:

    与显示表单相同,关闭表单也可以使用 BeginInvoke() 或 Invoke()。

    form.Invoke(new Action(form.Close));
    

    或者如果代码在表单内部,请将 form 替换为 this

    【讨论】:

    • 我已经尝试过 BeginInvoke() 和 Invoke() 但没有成功。
    • 对不起。我提供了样本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多