示例#1
0
 /// <summary>
 /// 获取或创建当前AppDomain下的FlowRunner实例
 /// </summary>
 /// <returns></returns>
 protected static void SetInstance(TestflowRunner runnerInstance)
 {
     lock (_instLock)
     {
         if (null != _runnerInst && ReferenceEquals(_runnerInst, runnerInstance))
         {
             throw new TestflowRuntimeException(-1, "A flowrunner instance with different option exist.");
         }
         _runnerInst = runnerInstance;
     }
 }
示例#2
0
 /// <summary>
 /// 销毁当前Runner
 /// </summary>
 public virtual void Dispose()
 {
     _runnerInst = null;
     DesignTimeService?.Dispose();
     RuntimeService?.Dispose();
     EngineController?.Dispose();
     DataMaintainer?.Dispose();
     SequenceManager?.Dispose();
     ComInterfaceManager?.Dispose();
     ResultManager?.Dispose();
     ParameterChecker?.Dispose();
     LogService?.Dispose();
     ConfigurationManager?.Dispose();
 }
示例#3
0
 /// <summary>
 /// 获取或创建当前AppDomain下的FlowRunner实例
 /// </summary>
 /// <param name="options">FlowRunner的选项配置</param>
 /// <returns></returns>
 public static TestflowRunner GetInstance(TestflowRunnerOptions options)
 {
     CheckIfExistDifferentRunner(options);
     if (null != _runnerInst)
     {
         return(_runnerInst);
     }
     lock (_instLock)
     {
         Thread.MemoryBarrier();
         CheckIfExistDifferentRunner(options);
         if (null != _runnerInst)
         {
             _runnerInst = GenerateFlowRunner(options);
         }
     }
     return(_runnerInst);
 }
示例#4
0
 static TestflowRunner()
 {
     _instLock   = new object();
     _runnerInst = null;
 }