当前位置: 首页>>代码示例>>C#>>正文


C# Condition.value方法代码示例

本文整理汇总了C#中Condition.value方法的典型用法代码示例。如果您正苦于以下问题:C# Condition.value方法的具体用法?C# Condition.value怎么用?C# Condition.value使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Condition的用法示例。


在下文中一共展示了Condition.value方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: allTests

    public static void allTests(Ice.Communicator communicator)
#endif
    {
        Write("testing stringToProxy... ");
        Flush();
        String @ref = "hold:default -p 12010";
        Ice.ObjectPrx @base = communicator.stringToProxy(@ref);
        test(@base != null);
        String refSerialized = "hold:default -p 12011";
        Ice.ObjectPrx baseSerialized = communicator.stringToProxy(refSerialized);
        test(baseSerialized != null);
        WriteLine("ok");
        
        Write("testing checked cast... ");
        Flush();
        HoldPrx hold = HoldPrxHelper.checkedCast(@base);
        HoldPrx holdOneway = HoldPrxHelper.uncheckedCast(@base.ice_oneway());
        test(hold != null);
        test(hold.Equals(@base));
        HoldPrx holdSerialized = HoldPrxHelper.checkedCast(baseSerialized);
        HoldPrx holdSerializedOneway = HoldPrxHelper.uncheckedCast(baseSerialized.ice_oneway());
        test(holdSerialized != null);
        test(holdSerialized.Equals(baseSerialized));
        WriteLine("ok");
        
        Write("changing state between active and hold rapidly... ");
        Flush();
        for(int i = 0; i < 100; ++i)
        {
            hold.putOnHold(0);
        }
        for(int i = 0; i < 100; ++i)
        {
            holdOneway.putOnHold(0);
        }
        for(int i = 0; i < 100; ++i)
        {
            holdSerialized.putOnHold(0);
        }
        for(int i = 0; i < 100; ++i)
        {
            holdSerializedOneway.putOnHold(0);
        }
        WriteLine("ok");
        
        Write("testing without serialize mode... ");
        Flush();
        System.Random rand = new System.Random();
        {
            Condition cond = new Condition(true);
            int value = 0;
            Ice.AsyncResult result = null;
            while(cond.value())
            {
                SetCB cb = new SetCB(cond, value);
                result = hold.begin_set(++value, value < 500 ? rand.Next(5) : 0).whenCompleted(cb.response,
                                                                                               cb.exception);
                if(value % 100 == 0)
                {
                    result.waitForSent();
                }

                if(value > 100000)
                {
                    // Don't continue, it's possible that out-of-order dispatch doesn't occur
                    // after 100000 iterations and we don't want the test to last for too long
                    // when this occurs.
                    break;
                }
            }
            test(value > 100000 || !cond.value());
            result.waitForSent();
        }
        WriteLine("ok");

        Write("testing with serialize mode... ");
        Flush();
        {
            Condition cond = new Condition(true);
            int value = 0;
            Ice.AsyncResult result = null;
            while(value < 3000 && cond.value())
            {
                SetCB cb = new SetCB(cond, value);
                result = holdSerialized.begin_set(++value, 0).whenCompleted(cb.response, cb.exception);
                if(value % 100 == 0)
                {
                    result.waitForSent();
                }
            }
            result.waitForCompleted();
            test(cond.value());

            for(int i = 0; i < 10000; ++i)
            {
                holdSerializedOneway.setOneway(value + 1, value);
                ++value;
                if((i % 100) == 0)
                {
                    holdSerializedOneway.putOnHold(1);
//.........这里部分代码省略.........
开发者ID:pedia,项目名称:zeroc-ice,代码行数:101,代码来源:AllTests.cs


注:本文中的Condition.value方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。