【问题标题】:Pass multiple parameters to BeginInvoke()将多个参数传递给 BeginInvoke()
【发布时间】:2015-08-17 15:16:13
【问题描述】:

我的逻辑很简单(我认为)。

public static void NotifyAboutNewJob(int jobId, bool forceSending = false)
{
        Action<int> notifier = SendAppleNotifications;
        notifier.BeginInvoke(jobId, null, null);
}

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

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

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

或者这就是答案:

Action<int, bool> notifier = SendAppleNotifications;
notifier.BeginInvoke(jobId, forceSending, null, null);

【问题讨论】:

  • 你也可以这样实现:Task.Run(() =&gt; SendAppleNotifications(jobId, forceSending));

标签: c# asynchronous begininvoke


【解决方案1】:

将您的 Action&lt;int&gt; 更改为 Action&lt;int, bool&gt;

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2013-01-07
    • 2011-10-10
    • 2013-09-15
    • 2010-10-09
    • 2012-09-05
    • 2017-06-14
    相关资源
    最近更新 更多