在功能继续之前,如何等待handler.PostDelayed完成?

    int num = null;
    public int DoSomething()
    {

            var handler = new Handler();
            handler.PostDelayed(() => StartCapital(), 10);

            handler.PostDelayed(() =>
            {
                    num = StartGain();
            }, 300);

           return num;
     }


如何在Wait中使StartGain()方法线程完成?该方法需要一些时间才能完成,并且它所在的函数返回null

最佳答案

在理解线程的工作方式时,这看起来像是一个问题。您创建了一个后台线程,这样就不必在很多其他用途中阻塞主线程来完成一些庞大的过程,

就像您的情况一样,方法StartGain()将在延迟300ms之后在主线程上执行,因此,如果您不想等待,请删除延迟和处理程序,然后以正常流程运行它。如果该方法返回的值需要进一步的计算,则在继续之前,请在单独的后台线程中运行它。

07-28 03:37
查看更多