コード例 #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;
        }