Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与.NET 3.5中.NET 4.5中的Task.FromResult()等效的是什么_C#_.net_Proxy_.net 3.5_Titanium Web Proxy - Fatal编程技术网

C# 与.NET 3.5中.NET 4.5中的Task.FromResult()等效的是什么

C# 与.NET 3.5中.NET 4.5中的Task.FromResult()等效的是什么,c#,.net,proxy,.net-3.5,titanium-web-proxy,C#,.net,Proxy,.net 3.5,Titanium Web Proxy,我正在使用钛合金代理来分析数据传输 它们使用Task.FromResult(0)作为返回。我的环境是3.5框架 m_proxyServer.ServerCertificateValidationCallback += OnCertificateValidation; 由于我的环境仅在3.5框架下工作,因此我们可以在.NET3.5框架中为Tasks.FromResult(0)使用什么替换 public Task OnCertificateValidation(object sender,Cer

我正在使用钛合金代理来分析数据传输

它们使用Task.FromResult(0)作为返回。我的环境是3.5框架

 m_proxyServer.ServerCertificateValidationCallback += OnCertificateValidation;
由于我的环境仅在3.5框架下工作,因此我们可以在.NET3.5框架中为Tasks.FromResult(0)使用什么替换

public Task OnCertificateValidation(object sender,CertificateValidationEventArgs e)
    {           
        //set IsValid to true/false based on Certificate Errors
        e.IsValid = true;         

        return Task.FromResult(0);
    }

我已经回答了这个问题,但是我不能使用async,因为它只有.NET 3.5。

这个答案的灵感来自

我创建了一个新类,命名为Tasks,并实现了以下功能

public static class Tasks
{
    public static Task<TResult> FromResult<TResult>(TResult result)
    {
        var tcs = new TaskCompletionSource<TResult>();
        tcs.SetResult(result);
        return tcs.Task;
    }

    public static Task WhenAll(Task[] tasks)
    {
        return Task.Factory.ContinueWhenAll(tasks, (t) => t);
    }

    public static Task Delay(int millisecondsDelay)
    {
        var tcs = new TaskCompletionSource<object>();
        new Timer(_ => tcs.SetResult(null)).Change(millisecondsDelay, -1);
        return tcs.Task;
    }
}

为什么在没有异步的情况下使用任务?无论如何,您的所有代码都将同步。
 public Task OnCertificateValidation(object sender,CertificateValidationEventArgs e)
{           
    //set IsValid to true/false based on Certificate Errors
    e.IsValid = true;         

    return Tasks.FromResult(0);
}