setTimeout(callback, milliseconds)在新的"异步"风格中,C#的JavaScript模拟是什么?
例如,如何将以下延续传递式JavaScript重写为现代异步启用的C#?
JavaScript的:
function ReturnItAsync(message, callback) {
setTimeout(function(){ callback(message); }, 1000);
}
Run Code Online (Sandbox Code Playgroud)
C#-5.0:
public static async Task<string> ReturnItAsync(string it) {
//return await ... ?
}
Run Code Online (Sandbox Code Playgroud)
AsyncCTP有TaskEx.Delay.这会将计时器包含在您的任务中.请注意,这不是生产就绪代码.TaskEx将Task在C#5到来时合并.
private static async Task ReturnItAsync(string it, Action<string> callback)
{
await TaskEx.Delay(1000);
callback(it);
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想返回it:
private static async Task<string> ReturnItAsync(string it, Func<string, string> callback)
{
await TaskEx.Delay(1000);
return callback(it);
}
Run Code Online (Sandbox Code Playgroud)