/// <summary> /// Creates a new <see cref="ComputeCommandQueue"/>. /// </summary> /// <param name="context"> A <see cref="ComputeContext"/>. </param> /// <param name="device"> A <see cref="ComputeDevice"/> associated with the <paramref name="context"/>. It can either be one of <see cref="ComputeContext.Devices"/> or have the same <see cref="ComputeDeviceTypes"/> as the <paramref name="device"/> specified when the <paramref name="context"/> is created. </param> /// <param name="properties"> The properties for the <see cref="ComputeCommandQueue"/>. </param> public ComputeCommandQueue(ComputeContext context, ComputeDevice device, ComputeCommandQueueFlags properties) { ComputeErrorCode error = ComputeErrorCode.Success; Handle = CL10.CreateCommandQueue(context.Handle, device.Handle, properties, out error); ComputeException.ThrowOnError(error); SetID(Handle.Value); this.device = device; this.context = context; outOfOrderExec = ((properties & ComputeCommandQueueFlags.OutOfOrderExecution) == ComputeCommandQueueFlags.OutOfOrderExecution); profiling = ((properties & ComputeCommandQueueFlags.Profiling) == ComputeCommandQueueFlags.Profiling); Events = new List <ComputeEventBase>(); Trace.WriteLine("Create " + this + " in Thread(" + Thread.CurrentThread.ManagedThreadId + ").", "Information"); }