protected override async Task <CollectionRuleActionResult> ExecuteCoreAsync(
                TaskCompletionSource <object> startCompletionSource,
                CancellationToken token)
            {
                try
                {
                    DiagnosticsClient client = new DiagnosticsClient(_endpointInfo.Endpoint);

                    _logger.LoadingProfiler(_options.Clsid, _options.Path, _endpointInfo.ProcessId);
                    await client.SetStartupProfilerAsync(_options.Clsid, _options.Path, token);

                    if (!startCompletionSource.TrySetResult(null))
                    {
                        throw new InvalidOperationException();
                    }

                    return(new CollectionRuleActionResult());
                }
                catch (Exception ex)
                {
                    throw new CollectionRuleActionException(ex);
                }
            }