C#多个进程等待静态属性

时间:2017-08-19 02:01:38

标签: c# async-await

我的代码中有几个入口点,它们在启动时都需要静态属性的值。或者如果需要它可以是一个功能。我坚持的部分是他们将在大约相同的时间调用此函数,我只希望代码执行一次。它是对Web服务的调用,结果将指示所有调用者都需要的状态。那么如何让多个进程等待一个被调用的函数的结果。我不知道如何从代码中的多个位置等待。你能做到吗?

1 个答案:

答案 0 :(得分:0)

您可以无限次地await Task public static readonly Task<int> MyValue = GetMyValue(); private static async Task<int> GetMyValue() { return await GetItFromWherever(); } 。例如:

int myValue = await MyValue;

然后在您需要的时候:

Lazy<T>

所有来电者都会等到它可用,然后它们会在获得后继续。之后,此行将始终同步运行并使用已获取的值。

同时检查AndroidDriver driver = capabilities(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//android.widget.TextView[contains(@text,'Done')]"))); driver.findElementByXPath("//android.widget.TextView[text@='Done']"); driver.findElementByXPath("//android.widget.TextView[text@='Got it']"); driver.findElementByAndroidUIAutomator("new UiScrollable(new USelector()).scrollIntoView(text(\"World Music\"));"); driver.findElementByXPath("//android.widget.TextView[text@='SKIP']"); link)。