我的目標是將任何具有返回類型的函數傳遞給我的Execute方法,並對其結果進行序列化和存儲。下面是我想要做的事情的一個粗略的想法,顯然不會編譯,但希望它能夠實現這個想法。我想我也應該能夠遞歸地處理嵌套的任務。思考?是否可以確定一個方法是否返回一個Task並等待它呢?
public static TResult Execute<TResult>(Func<TResult> method)
where TResult : class
{
var result = method();
if(result is Task)
{
var taskResult = await result;
StoreResult(taskResult);
}
else
{
StoreResult(result);
}
}
創建兩個重載,一個這需要一個'Func鍵<任務>'和其他'Func '。 –
Lee