首页 > 解决方案 > 执行任务并等待返回 whitout 阻塞 GUI

问题描述

为了使示例尽可能简单,我正在运行一个程序,该程序从主线程调用一个函数,该函数将返回一个状态:

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show(check().ToString());
}

private bool check()
{
    Thread.Sleep(5000);
    return true;
}

它会按我的意愿工作,它会等待函数完成并显示返回值,但这样做会使 GUI 被锁定并且无法移动。从另一个线程运行它不会阻塞 GUI,但我必须等待结果,所以如果我等待线程完成我回到同样的问题,则 gui 被锁定。

在不阻塞 GUI 的情况下等待函数返回其值的最佳方法是什么?

标签: c#multithreading

解决方案


推荐阅读