【问题标题】:How to get status of execution of a method declared as Single Instance Mode如何获取声明为单实例模式的方法的执行状态
【发布时间】:2017-12-01 09:16:51
【问题描述】:

我已将我的服务行为声明为如下所述的单实例模式

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class Service : IService
{
  [OperationBehavior]
        public void DoSomething()
        {
          ...
        }
}

我想从客户端知道DoSomething()的执行状态,确保在运行时,没有客户端请求调用DoSomething()。请帮我找到解决办法?

【问题讨论】:

  • 客户如何知道执行状态

标签: c# wcf execution status instancecontextmode


【解决方案1】:

你不能。

如果你实际上只有一个实例,你可以有第二种方法,它给你一个状态。但这是一个异步系统,如果你问它是否忙,你会得到一个答案……在你的下一次调用中,它可能已经不同了。您可以从您的方法中返回一个布尔值,并在您发现方法已经在运行时立即让您的方法返回 false。或者您可以让您的方法 wait 等待所有其他调用完成,然后继续当前调用。或者,您可以让该消息queue 工作,并让另一项服务一个接一个地连续处理所有排队的项目。

关键是,您需要一个策略,并且您需要做出决定。一旦你完成并实施了它并且你在这样做时遇到了一个特定的问题,请随时来这里并再次提出一个具体的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多