如何在F#中处理ValueTask <t>?

时间:2018-09-18 07:23:25

标签: .net asynchronous f# async-await c#-to-f#

因此,显然.NET的全新ValueTask<T>Task<T>精简版版本。太酷了,但是如果在不得不使用Async.AwaitTask将F#异步工作流与Task集成之前,我现在应该对ValueTask做什么?

2 个答案:

答案 0 :(得分:2)

在实现Async.AwaitValueTask之前(感谢Aaron),可以使用ValueTask的AsTask方法,现在使用Async.AwaitTask作为最简单的解决方案。

答案 1 :(得分:0)

我的 OSS 项目 "FusionTasks" 可以自然地和隐式地处理 //How you use it in more than one function Define it as a global var let incorrects, correct; function Q1correct() { correct.style.backgroundColor = 'green'; document.querySelector('#resultQ1').innerHTML = 'Correct!'; } function Q1wrong() { for (let i = 0; i < incorrects.length; i++) { incorrects[i].style.backgroundColor = 'red'; document.querySelector('#resultQ1').innerHTML = 'Wrong :('; } } function Q2() { if (secondQ.value.toLowerCase() == "yes") { secondQ.style.backgroundColor = 'green'; document.querySelector('#resultQ2').innerHTML = 'Correct!'; } else { secondQ.style.backgroundColor = 'red'; document.querySelector('#resultQ2').innerHTML = 'Wrong :('; } } document.addEventListener('DOMContentLoaded', function () { correct = document.querySelector('.correct'); correct.addEventListener('click', Q1correct); //querySelectorAll returns an array, so we need to loop into it incorrects = document.querySelectorAll('.incorrect'); incorrects.forEach(btn => { btn.addEventListener('click', Q1wrong) }) let secondQ = document.querySelector('#check'); secondQ.addEventListener('click', Q2); }); Task 与 F# 异步工作流中的 F# ValueTask 类型相同:

Async
相关问题