예제 #1
0
        public Worker(WorkStealingScheduler scheduler, int index)
        {
            this.thread              = new Thread(Work);
            this.thread.Name         = "ParallelTasks Worker " + index;
            this.thread.IsBackground = true;
            this.tasks     = new Deque <Task>();
            this.scheduler = scheduler;
            this.Gate      = new AutoResetEvent(false);

            workers.Add(thread, this);
        }
        public Worker(WorkStealingScheduler scheduler)
        {
            this.thread = new Thread(Work);
            this.thread.Name = "ParallelTasks Worker";
            this.thread.IsBackground = true;
            this.tasks = new Deque<Task>();
            this.scheduler = scheduler;
            this.Gate = new AutoResetEvent(false);

            workers.Add(thread, this);
        }
예제 #3
0
파일: Worker.cs 프로젝트: viktorius/Viktor
        public Worker(WorkStealingScheduler scheduler, int index, ThreadPriority priority)
        {
            this.thread                  = new Thread(Work);
            this.thread.Name             = "Parallel " + index;
            this.thread.IsBackground     = true;
            this.thread.Priority         = priority;
            this.thread.CurrentCulture   = CultureInfo.InvariantCulture;
            this.thread.CurrentUICulture = CultureInfo.InvariantCulture;
            this.tasks     = new Deque <Task>();
            this.scheduler = scheduler;
            this.Gate      = new AutoResetEvent(false);
            this.HasNoWork = new ManualResetEvent(false);

            workers.Add(thread, this);
        }