gpt4 book ai didi

c# - 忽略异步任务方法的返回值

转载 作者:行者123 更新时间:2023-11-30 18:58:25 26 4
gpt4 key购买 nike

场景如下:在我的 WPF 应用程序中,我希望始终保持循环运行以执行各种操作。我想到了这种模式:

    void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
SomeProcessAsync(); //throw away task
}

async Task SomeProcessAsync()
{
while (true)
{
DoSomething();

await Task.Delay(1000);
}
}

调用会触发警告,因为返回值未被使用。消除该警告的最简洁方法是什么?

#pragma warning disable 4014
AddItemsAsync(); //throw away task
#pragma warning restore 4014

这行得通,但看起来很讨厌!

顺便说一句,我也可以使用计时器,但我喜欢这个循环的简单性。

最佳答案

正如 chris 的回答中已经提到的,这里正确的解决方案是将事件处理程序转换为 async void 方法,然后使用 await,以便传播异常正确。

但是如果你真的想忽略Task,那么你可以将它赋值给一个变量:

var ignored = SomeProcessAsync();

或者在 C# 7.0 中,你可以使用 discard:

_ = SomeProcessAsync();

关于c# - 忽略异步任务方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com