示例#1
0
            private async Task WaitForChange()
            {
                // Always add recursive. It is ignored for values and required for directories when waiting for changes and ETags differ between
                // recursive and non-recursive requests for directories.
                var response = await client.RequestMetadataAsync(path + "?recursive=true", cancellationTokenSource.Token).ConfigureAwait(false);

                var lastETag = GetETag(response);

                ready.Set();

                var timeout = new TimeSpan(client.HttpClient.Timeout.Ticks / 2);

                while (!cancellationTokenSource.Token.IsCancellationRequested)
                {
                    try
                    {
                        var result = await client.WaitForChangeAsync(path, lastETag, timeout, cancellationTokenSource.Token).ConfigureAwait(false);

                        if (lastETag != result.ETag)
                        {
                            changeAction(this, result.Content);
                            lastETag = result.ETag;
                        }
                    }
                    catch (OperationCanceledException) { }
                }
            }
示例#2
0
            private async Task WaitForChange()
            {
                var response = await client.RequestMetadataAsync(path, cancellationTokenSource.Token).ConfigureAwait(false);

                var lastETag = GetETag(response);

                ready.Set();

                var timeout = new TimeSpan(client.HttpClient.Timeout.Ticks / 2);

                while (!cancellationTokenSource.Token.IsCancellationRequested)
                {
                    try
                    {
                        var result = await client.WaitForChangeAsync(path, lastETag, timeout, cancellationTokenSource.Token).ConfigureAwait(false);

                        if (lastETag != result.ETag)
                        {
                            changeAction(this, result.Content);
                            lastETag = result.ETag;
                        }
                    }
                    catch (OperationCanceledException) { }
                }
            }