C# 与.NET 3.5中.NET 4.5中的Task.FromResult()等效的是什么
我正在使用钛合金代理来分析数据传输 它们使用Task.FromResult(0)作为返回。我的环境是3.5框架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
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);
}