This repository has been archived on 2025-03-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
xerobrowser/packages/CefSharp.Common.87.1.132/src/CefSharp/Visitor/TaskStringVisitor.cs
2023-02-20 23:24:10 +13:00

49 lines
1.3 KiB
C#

// Copyright © 2014 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
using System;
using System.Threading.Tasks;
using CefSharp.Internals;
namespace CefSharp
{
/// <summary>
/// A <see cref="IStringVisitor"/> that uses a TaskCompletionSource
/// to simplify things
/// </summary>
public class TaskStringVisitor : IStringVisitor
{
private readonly TaskCompletionSource<string> taskCompletionSource;
/// <summary>
/// Default constructor
/// </summary>
public TaskStringVisitor()
{
taskCompletionSource = new TaskCompletionSource<string>();
}
/// <summary>
/// Method that will be executed.
/// </summary>
/// <param name="str">string (result of async execution)</param>
void IStringVisitor.Visit(string str)
{
taskCompletionSource.TrySetResultAsync(str);
}
/// <summary>
/// Task that can be awaited for the result to be retrieved async
/// </summary>
public Task<string> Task
{
get { return taskCompletionSource.Task; }
}
void IDisposable.Dispose()
{
}
}
}