gpt4 book ai didi

c# - 可以将等待任务分配给操作吗?

转载 作者:行者123 更新时间:2023-11-30 14:50:01 26 4
gpt4 key购买 nike

我有一个 Action 定义为:

Action CurrentDxList;

最初,我将其用作:

private void test()
{
CurrentDxList = MakeAllDxList;
CurrentDxList();
}

在哪里

private void MakeAllDxList()
{
var dx = MedicalClient.GetAllDx((int)Patient.Patient_Recid, Patient.tservice);
_dxlist = dx.OrderBy(o => o.Cdesc);

DxList = new ObservableCollection<DiagnosisDetail>(iDxDetail);
ListCount = DxList.Count();
}

但是,MakeAllDxList() 最好用 async 定义为:

private async Task MakeAllDxList()
{
var dx = await MedicalClient.GetAllDxAsync((int)Patient.Patient_Recid, Patient.tservice);
_dxlist = dx.OrderBy(o => o.Cdesc);

DxList = new ObservableCollection<DiagnosisDetail>(iDxDetail);
ListCount = DxList.Count();
}

现在会导致以下错误:

Task MakeAllDxList() has the wrong return type.

那么是否可以将一个可等待对象分配给一个 Action ?这是怎么做到的?欢迎任何想法。

当然,我可以将 MakeAllDxList() 的签名更改为

private async void MakeAllDxList()

但那样我就失去了异步任务的所有优势。

最佳答案

您需要更改 ActionFunc<Task> ,这就是新的类型定义。

附言不要忘记等待 CurrentDxList代表

private async Task test()
{
CurrentDxList = MakeAllDxList;
await CurrentDxList();
}

您需要更新任何调用 test 的人也是异步的。

关于c# - 可以将等待任务分配给操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37715841/

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