簡體   English   中英

使用奧爾良內部谷物的結果

[英]Using result from inner grain in Orleans

我試圖了解谷物在奧爾良的工作方式。 當我嘗試使用外部Grain中的內部Grain的結果時,程序將停頓。

內層紋理是否會被外層紋理的上下文所阻擋,所以我永遠無法從內層紋理得到結果?

public class OuterGrain : Grain, IOuterGrain
{
    public Task<string> GetFormattedTime()
    {
        var innerGrain = GrainFactory.GetGrain<IInnerGrain>(1);
        var innerGrainTask = innerGrain.GetCurrentTime();
        return Task.FromResult(innerGrainTask.Result.ToString("yy-MM-dd"));
    }
}

public class InnerGrain : Grain, IInnerGrain
{
    public Task<DateTime> GetCurrentTime()
    {
        return Task.FromResult(DateTime.Now);
    }
}

使用當前的異步/等待模式,切勿在異步方法(返回TaskTask<> )中使用阻塞的.Result.Wait()方法。

public class OuterGrain : Grain, IOuterGrain
{
    public async Task<string> GetFormattedTime()
    {
        var innerGrain = GrainFactory.GetGrain<IInnerGrain>(1);
        var innerGrainResult = await innerGrain.GetCurrentTime();
        return innerGrainResult.ToString("yy-MM-dd");
    }
}

public class InnerGrain : Grain, IInnerGrain
{
    public Task<DateTime> GetCurrentTime()
    {
        return Task.FromResult(DateTime.Now);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM