예제 #1
0
        internal static async Task <EventPipeSession> StartAsync(IpcEndpoint endpoint, IEnumerable <EventPipeProvider> providers, bool requestRundown, int circularBufferMB, CancellationToken cancellationToken)
        {
            IpcMessage  requestMessage = CreateStartMessage(providers, requestRundown, circularBufferMB);
            IpcResponse?response       = await IpcClient.SendMessageGetContinuationAsync(endpoint, requestMessage, cancellationToken).ConfigureAwait(false);

            return(CreateSessionFromResponse(endpoint, ref response, nameof(StartAsync)));
        }
예제 #2
0
        internal async Task <Dictionary <string, string> > GetProcessEnvironmentAsync(CancellationToken token)
        {
            IpcMessage message = CreateProcessEnvironmentMessage();

            using IpcResponse response = await IpcClient.SendMessageGetContinuationAsync(_endpoint, message, token).ConfigureAwait(false);

            ValidateResponseMessage(response.Message, nameof(GetProcessEnvironmentAsync));

            ProcessEnvironmentHelper helper = ProcessEnvironmentHelper.Parse(response.Message.Payload);

            return(await helper.ReadEnvironmentAsync(response.Continuation, token).ConfigureAwait(false));
        }