我有一个接口,其中包含一些返回task
的函数。实现接口的一些类不需要等待任何东西,而其他类可能只是抛出--因此警告是虚假的和令人讨厌的。
public async Task<object> test()
{
throw new NotImplementedException();
}
我有一个带有一些异步函数的接口。
方法返回task
。异步
是实现细节,因此不能应用于接口方法。
实现接口的一些类没有任何东西要等待,而一些类可能只是抛出。
public Task<int> Success() // note: no "async"
{
... // non-awaiting code
int result = ...;
return Task.FromResult(result);
}
public Task<int> Fail() // note: no "async"
{
var tcs = new TaskCompletionSource<int>();
tcs.SetException(new NotImplementedException());
return tcs.Task;
}
public static class TaskConstants<TResult>
{
static TaskConstants()
{
var tcs = new TaskCompletionSource<TResult>();
tcs.SetException(new NotImplementedException());
NotImplemented = tcs.Task;
}
public static Task<TResult> NotImplemented { get; private set; }
}
public Task<int> Fail() // note: no "async"
{
return TaskConstants<int>.NotImplemented;
}
helper类还减少了GC必须收集的垃圾,因为具有相同返回类型的每个方法可以共享其Task
和NotimPlementedException
对象。
我的AsyncEx库中还有其他几个“任务常量”类型的示例。
我猜我的代码有很多薄弱点,所以请随时分享任何想法。顺便问一下,我的主要问题是,当我尝试执行以下操作时,以及在最后,当我希望等待所有任务(通过使用task.waitall)完成以检查是否存在任何异常时,是否真的会因为缺少'await'操作符而使代码的任何部分同步运行? 完整的来源,如果需要进一步的信息。也许还值得一提的是,我使用的是.NET5.0。
我知道我可以通过等待来修复它,但对于只执行一些廉价操作的方法来说,这感觉不对。这听起来也会给执行增加不必要的开销,但我也不确定这是否已经存在,因为存在关键字。 我应该忽略这些警告,还是有一种我看不到的方法来解决这个问题?
警告试着告诉我什么?我该怎么办? 这是我的代码:它是否使用多线程运行?
在ViewComponent中,我得到了以下警告:(我使用了) 更新: 在视图中,我有:
我是groovy的新手。我有这样的代码。 串味 从这个客户端映射中,我需要迭代appName和enable的值。为此,我使用了get方法。。。我对此不确定。 使用此get方法时,我遇到以下错误。因为我是groovy新手,所以我不知道这里发生了什么 棒极了。lang.MissingMethodException:没有方法com的签名。康卡斯特。csv。哈克索。SecureFirebaseRestCl