gpt4 book ai didi

c# - 使用使用 int 参数调用的 Action 初始化任务

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:51 27 4
gpt4 key购买 nike

我的类中有以下构造函数,它初始化我的任务:

 public ReportGeneratorThread(Func<int, bool> getPermission, Action<object> a)
{
this.action = a;
this.t = new Task(this.action = this.InvokedAction, this.cancellationToken);
this.getPermission = getPermission;
}

将由任务调用的 InvokedAction 方法定义如下:

private void InvokedAction(object obj)
{
Debug.WriteLine(DateTime.Now.ToLongTimeString() + " Task " + this.t.Id + " has STARTED Generating a report");
this.GenerateReport();
throw new ArgumentException("For testing purpose");
}

当我想用一个 int 而不是一个对象调用这个方法时,就会出现问题,因为任务不接受它。有没有什么方法可以用一个 int 值调用这个方法:

Action<int>

最佳答案

因为你不能调用 Action<int>使用对象类型的参数,您需要手动转换它。请注意,如果要求是其他方式就好了 - 您可以轻松通过 Action<object>其中 Action<int>预计。

... new Task( v => intAction((int)v),...

如果您不能保证参数始终为整数,则可能需要处理转换异常。

关于c# - 使用使用 int 参数调用的 Action 初始化任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978105/

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