繁体   English   中英

如何在不阻塞主线程的情况下等待回调

[英]How to wait for a callback without blocking main thread

我需要在Android的自定义渲染器中使用WebView,并且需要使用EvaluateJavascript获取值:

class ValueCallback : Java.Lang.Object, IValueCallback
{
    public Java.Lang.Object Value
    {
        get;
        set;
    }

    public void OnReceiveValue(Java.Lang.Object value)
    {
        Value = value;
    }
}

这是从Renderer中的Method调用的,它在Turn中从一个属性调用,如Duration

public double Duration;

从Webview获取持续时间:

var callback = new ValueCallback();
View.EvaluateJavascript(jsToExecute, callback);
//How to wait here without blocking the MainThread?

问题是只能从MainThread调用EvaluateJavascript,并且还从MainThread调用Property。 因此,当我使用类似AutoResetEvent之类的东西等待脚本完成时,结果就是死锁。

你问的是如何阻止主线程而不阻塞主线程。 答案很简单, 你做不到

如果您不想阻止主线程,您将不需要等待 ,而是在回调回调中执行之后执行您想要发生的任何事情,而不是等待它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM