Example #1
0
 public TaskController(IWebHostEnvironment environment, IConfiguration configuration, ILogger <TaskController> log, IPyNNServiceClient srv, IPyAutoMLServiceClient automlSrv)
 {
     _environment       = environment ?? throw new ArgumentNullException(nameof(environment));
     this.Configuration = configuration;
     this.nnclient      = srv;
     this.Logger        = log;
     this.autoMLclient  = automlSrv;
     try
     {
         taskResponse  = TaskPayload.Get();
         modelResponse = ModelPayload.Get();
     }
     catch (Exception ex)
     {
         //ILogger
         string error = ex.Message;
     }
 }
Example #2
0
        public void ExecuteTasks()
        {
            RenderingInProgress = true;
            var         taskCount = taskQueue.Count;
            List <Task> tasks     = new List <Task>();

            for (int i = 0, count = 0; i < taskCount; i += count)
            {
                var j = 0;
                tasks.Clear();
                for (count = 0; j < NUM_THREADS && i + j < taskCount; j++)
                {
                    count++;
                    RenderTask task;
                    if (!taskQueue.TryDequeue(out task))
                    {
                        throw new SystemException("error dequeueing rendertask");
                    }
                    var payload = new TaskPayload {
                        pipelineNumber = j,
                        task           = task
                    };
                    var t = new Task(() => { RunTask(payload); });
                    t.Start();
                    tasks.Add(t);
                }
                Task.WaitAll(tasks.ToArray());
                for (var k = 0; k < j; k++)
                {
                    if (!tasks[k].IsFaulted)
                    {
                        deferredPipelines[k].FinishCommandList();
                        ImmPipeline.ExecuteCommandList(deferredPipelines[k].CommandList);
                        deferredPipelines[k].ReleaseCommandList();
                    }
                }
            }
            RenderingInProgress = false;
        }
Example #3
0
 private void RunTask(TaskPayload payload)
 {
     payload.task.Render(deferredPipelines[payload.pipelineNumber]);
 }