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


C# Composite.Start方法代码示例

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


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

示例1: Start

            public static void Start(Func<Object,Task<bool>> task, Func<object,bool> stopCondition = null)
            {
                var isStarted = false;

                Worker.Start(() =>
                {                   
                    using (new MemoryHelper())
                    {
                        try
                        {
                            if (!isStarted)
                            {
                                Logger.Log("Starting new Bot Thread Id={0}", Thread.CurrentThread.ManagedThreadId);
                                _logic = new ActionRunCoroutine(task);
                                _logic.Start(null);
                                isStarted = true;
                            }
                            Tick();
                        }
                        catch (InvalidOperationException ex)
                        {                            
                            Logger.LogDebug("CheckInCoroutine() Derp {0}", ex);
                        }

                    }

                    if (stopCondition != null && stopCondition.Invoke(null))
                    {
                        Logger.Log("Bot Thread Finished Id={0}", Thread.CurrentThread.ManagedThreadId);
                        return true;
                    }
                        
                    return false;
                });
            }
开发者ID:artious,项目名称:unifiedTrinity-2.x.x,代码行数:35,代码来源:TaskDispatcher.cs

示例2: Tick

        private static void Tick(Composite tree)
        {
            if (tree.LastStatus != RunStatus.Running)
                tree.Start(null);

            if (tree.Tick(null) != RunStatus.Running)
                tree.Stop(null);
        }
开发者ID:ynyzyfy,项目名称:schorl-scripts,代码行数:8,代码来源:Anti+Drown.cs

示例3: WalkTree

        private static void WalkTree(Composite root, object rootContext = null)
        {
            // This function is meant as an EXAMPLE ONLY!
            // It is not the best way to handle walking the tree, but will suffice for simple usages.
            
            // Start must always be called first. Typically the root behavior will have a null context. Change if needed.
            root.Start(rootContext);

            // Run the tree forever...
            while (true)
            {
                try
                {
                    root.Tick(null);
                }
                catch (ThreadAbortException)
                {
                    // Assuming we wanted this, make the tree stop walking, regardless of where it is.
                    break;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    // Handle this exception, either stop the tree, or just eat it and continue.
                }


                // If we're still running the current composite, then we don't need to reset, we want the tree to pick up
                // where it left off last tick.
                if (root.LastStatus != RunStatus.Running)
                {
                    // Reset the tree, and begin the execution all over...
                    root.Stop(rootContext);
                    root.Start(rootContext);
                }

                // Change/remove, do whatever you want. This is an example remember!
                Thread.Sleep(10);
            }

            root.Stop(rootContext);
        }
开发者ID:mcdonnellv,项目名称:treesharp,代码行数:42,代码来源:TreeExample.cs

示例4: OnEnable

 public override void OnEnable()
 {
     try {
         _root = CreateBehaviorLogic();
         _root.Start(null);
         CustomBlacklist.SweepTimer();
         Lua.Events.AttachEvent("UI_ERROR_MESSAGE", HandleErrorMessage);
         base.OnEnable();
     } catch(Exception e) {
         CustomNormalLog("Could not initialize. Message = " + e.Message + " Stacktrace = " + e.StackTrace);
     } finally {
         CustomNormalLog("Initialization complete.");
     }
 }
开发者ID:Wigglez,项目名称:Disenchantrix,代码行数:14,代码来源:Disenchantrix.cs


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