C# 具有异步调用的多播委托

C# 具有异步调用的多播委托,c#,delegates,multicastdelegate,C#,Delegates,Multicastdelegate,这是我的Main课程代码: DelegateClass dc = new DelegateClass(); MyDelegate mydelegate = new MyDelegate(dc.WriteName); ParameterLess paramless = new ParameterLess(dc.ShowName); IAsyncResult mydelresult = mydelegate.BeginInvoke("Some Data",null,null); var result

这是我的
Main
课程代码:

DelegateClass dc = new DelegateClass();
MyDelegate mydelegate = new MyDelegate(dc.WriteName);
ParameterLess paramless = new ParameterLess(dc.ShowName);
IAsyncResult mydelresult = mydelegate.BeginInvoke("Some Data",null,null);
var result = mydelegate.EndInvoke(mydelresult);
Console.WriteLine("Name is {0} ", result);

IAsyncResult myparamless = paramless.BeginInvoke(null,null);
result = paramless.EndInvoke(myparamless);
Console.WriteLine("Greeting is {0} ", result);
Console.WriteLine();
Console.ReadLine();
这是我的
DelegateClass

public string WriteName(string Name)
{
    return Name;      
}

public string ShowName()
{
    return "Hello";    
}

public string idea(string idea)
{
    return idea;
}

由于
idea
WriteName
的定义相同,我想通过使用BeginInvoke和EndInvoke使它们成为多播委托。有人能告诉我怎么做吗?有可能吗?

您不能使用asyn调用使用多播委托,因为每个asyn调用都在单独的线程上执行,而且您没有第二个线程可以执行的选项。即多播线程。

请在发布之前在格式化代码方面多下功夫。在发布之前,只需查看预览,问问自己如果回答问题,是否希望看到代码。此外,你的问题并不十分清楚。只需使用
Action-Action=dc.WriteName;行动+=dc.idea异步从何而来?在调用BeginInvoke之后立即调用EndInvoke没有任何意义。只需直接调用,完全相同的结果减去tp线程的成本。