-3

这是我的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 使它们成为多播委托。有人可以告诉我该怎么做。有可能吗?

4

1 回答 1

-1

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

于 2014-09-27T13:18:17.770 回答