예제 #1
0
 public LockFiberFactory(int size = QueueSize.DefaultQueueSize, TaskFactory taskFactory = null,
                         IFiberScheduler scheduler           = null,
                         IAsyncFiberScheduler asyncScheduler = null)
 {
     _size           = size;
     _taskFactory    = taskFactory;
     _scheduler      = scheduler;
     _asyncScheduler = asyncScheduler;
 }
예제 #2
0
파일: Fiber.cs 프로젝트: chrisa23/Fibrous
 public Fiber(IExecutor executor        = null, int size = QueueSize.DefaultQueueSize, TaskFactory taskFactory = null,
              IFiberScheduler scheduler = null)
     : base(executor, scheduler)
 {
     _queue       = new ArrayQueue <Action>(size);
     _taskFactory = taskFactory ??
                    new TaskFactory(TaskCreationOptions.PreferFairness, TaskContinuationOptions.None);
     _flushCache = Flush;
 }
예제 #3
0
 /// <summary>
 ///   Creates a thread fiber.
 /// </summary>
 /// <param name="executor"></param>
 /// <param name = "queue"></param>
 /// <param name = "threadName"></param>
 /// <param name = "isBackground"></param>
 /// <param name = "priority"></param>
 public ThreadFiber(IExecutor executor,
     IFiberScheduler fiberScheduler,
     IQueue queue,
     string threadName,
     bool isBackground = true,
     ThreadPriority priority = ThreadPriority.Normal)
     : base(executor, fiberScheduler)
 {
     _queue = queue;
     _thread = new Thread(RunThread) { Name = threadName, IsBackground = isBackground, Priority = priority };
 }
예제 #4
0
 /// <summary>
 ///   Creates a thread fiber.
 /// </summary>
 /// <param name="executor"></param>
 /// <param name = "queue"></param>
 /// <param name = "threadName"></param>
 /// <param name = "isBackground"></param>
 /// <param name = "priority"></param>
 public ThreadFiber(IExecutor executor,
                    IFiberScheduler fiberScheduler,
                    IQueue queue,
                    string threadName,
                    bool isBackground       = true,
                    ThreadPriority priority = ThreadPriority.Normal) : base(executor, fiberScheduler)
 {
     _queue  = queue;
     _thread = new Thread(RunThread)
     {
         Name = threadName, IsBackground = isBackground, Priority = priority
     };
 }
예제 #5
0
파일: Fiber.cs 프로젝트: chrisa23/Fibrous
 public Fiber(Action <Exception> errorCallback, int size = QueueSize.DefaultQueueSize,
              TaskFactory taskFactory = null, IFiberScheduler scheduler = null)
     : this(new ExceptionHandlingExecutor(errorCallback), size, taskFactory, scheduler)
 {
 }
예제 #6
0
 protected FiberBase(IExecutor executor)
 {
     _fiberScheduler = new TimerScheduler();
     Executor = executor;
 }
예제 #7
0
 protected FiberBase(IExecutor executor, IFiberScheduler scheduler)
 {
     _fiberScheduler = scheduler;
     Executor = executor;
 }
예제 #8
0
 public StubFiber(IExecutor excecutor, IFiberScheduler scheduler)
     : base(excecutor, scheduler)
 {
 }
예제 #9
0
 public StubFiber(IExecutor excecutor, IFiberScheduler scheduler)
     : base(excecutor, scheduler)
 {
 }
예제 #10
0
 protected FiberBase(IExecutor executor = null, IFiberScheduler scheduler = null)
 {
     _fiberScheduler = scheduler ?? new TimerScheduler();
     Executor        = executor ?? new Executor();
 }
예제 #11
0
 protected FiberBase(IExecutor executor)
 {
     _fiberScheduler = new TimerScheduler();
     Executor        = executor;
 }
예제 #12
0
 protected FiberBase(IExecutor executor, IFiberScheduler scheduler)
 {
     _fiberScheduler = scheduler;
     Executor        = executor;
 }
예제 #13
0
 public StubFiberFactory(IFiberScheduler scheduler           = null,
                         IAsyncFiberScheduler asyncScheduler = null)
 {
     _scheduler      = scheduler;
     _asyncScheduler = asyncScheduler;
 }
예제 #14
0
 public FormFiber(ISynchronizeInvoke invoker, IExecutor executor = null, IFiberScheduler scheduler = null)
     : base(executor ?? new Executor(), scheduler ?? new TimerScheduler()) =>
예제 #15
0
 public StubFiber(IExecutor executor = null, IFiberScheduler scheduler = null)
     : base(executor, scheduler)
 {
 }
예제 #16
0
 public StubFiber(Action <Exception> errorCallback, IFiberScheduler scheduler = null)
     : this(new ExceptionHandlingExecutor(errorCallback), scheduler)
 {
 }