gpt4 book ai didi

c# - 异步方法未按正确(预期)顺序执行

转载 作者:行者123 更新时间:2023-12-02 16:10:06 24 4
gpt4 key购买 nike

我有一个包含以下事件的组件:

    // MyComponent :
[Parameter] public EventCallback<DataChangedEventArgs> OnTextChanged { get; set; }

protected async void SomeMethod(ChangeEventArgs args)
{
DataChangedEventArgs evArg =new DataChangedEventArgs(args.value);
Console.Writeline("1");
await OnTextChanged.InvokeAsync(evArg);
Items = evArg.Data; // <=== problem here: Data is always null.
Console.Writeline("4");
}

当我在另一个组件上使用和处理 OnTextChanged 事件时,我设置了 DataChangedEventArgsData 属性:

 // AnotherComponent that uses MyComponent:
public async void theTextChanged(DataChangedEventArgs args)
{
//...
Console.Writeline("2");
args.Data = await GetAPersonAsync(); // or some other object
Console.Writeline("3");
}

现在我希望将 Items 设置为 Person(行 Items = evArg.Data)。但是 Data 始终为 null,这意味着在事件处理程序中对 args.Data(这是一个引用类型)所做的更改在调用方法中是不可访问的SomeMethod.

有人可以帮我吗?

更新:我认为这与 async 方法有关,因为控制台结果与我预期的不同 (1,2,3,4):

console:
1
2
4
3

最佳答案

您应该使用 async Task 而不是 async void。

Theodor 提供了一个 link to the documentation

关于c# - 异步方法未按正确(预期)顺序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68240432/

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