向BeginInvoke()传递多个参数

7
我有一个简单(我认为)的逻辑。
public static void NotifyAboutNewJob(int jobId, bool forceSending = false)
{
        Action<int> notifier = SendAppleNotifications;
        notifier.BeginInvoke(jobId, null, null);
}

方法SendAppleNotifications之前只有一个参数,很容易将其传递给BeginInvoke。现在我添加了第二个参数forceSending。问题是 - 我不知道如何将其传递给BeginInvoke

我应该将它作为第三个对象参数传递吗?

private static void SendAppleNotifications(int jobId, bool forceSending = false){...}

或者这就是答案:
Action<int, bool> notifier = SendAppleNotifications;
notifier.BeginInvoke(jobId, forceSending, null, null);

1
你也可以这样实现:Task.Run(() => SendAppleNotifications(jobId, forceSending)); - Matthew Watson
1个回答

8

将您的Action<int>更改为Action<int, bool>

Action<int, bool> notifier = SendAppleNotifications;
notifier.BeginInvoke(jobId, forceSending, null, null); // You can now pass true or false as 2nd parameter.

那么它应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接