///<summary> ///Creates a new <see cref = "ComputeCommandQueue"/>. ///</summary> ///<param name = "context"> A <see cref = "ComputeContext"/>. </param> ///<para 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 <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 = CL12.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"); }