public void AddTrigger(long id, Type valueType) { var taskCompletionSource = TaskCompletionSourceAccessor.Create(valueType); lock (_triggers) { _triggers.Add(id, taskCompletionSource); } }
public object Compose(IValueContainer container, Type valueType) { var values = (TaskCompletionSourceContainer)container; if (values.Task == null) // must not be NULL! { return(TaskCompletionSourceAccessor.Create(typeof(object))); } var taskCompletionSource = TaskCompletionSourceAccessor.Create(values.Task); _taskCompletionSourceRegistry.Monitor(taskCompletionSource); return(taskCompletionSource); }