예제 #1
0
파일: Loop.cs 프로젝트: CoolQuests/Dolls
 public TaskDescriptor AddTask(Func<bool> task)
 {
     var taskDescriptor = new TaskDescriptor(task);
     lock (_funcs)
     {
         _funcs.Enqueue(taskDescriptor);
     }
     return taskDescriptor;
 }
예제 #2
0
파일: Loop.cs 프로젝트: CoolQuests/Dolls
        public async Task<bool> AddTaskAsync(Func<bool> task)
        {
            var taskDescriptor = new TaskDescriptor(task);
            lock (_funcs)
            {
                _funcs.Enqueue(taskDescriptor);
            } 
            var asyncTask = new Task<bool>(() => Wait(taskDescriptor));

            return await asyncTask;
        }
예제 #3
0
파일: Loop.cs 프로젝트: CoolQuests/Dolls
        public bool Wait(TaskDescriptor descriptor)
        {

            descriptor.IsDone.WaitOne();
            return descriptor.Result;
        }