我有一个执行长时间运行的功能。我的应用程序的许多表单/类都可以访问该函数。当操作完成时,它调用一个事件,许多不同形式的实例被绑定到该事件。
如何避免事件调用绑定到它的所有函数。我想在调用函数时从客户端表单传递一些变量/ UUID,然后可以用它来仅调用类/表单的特定实例。
该函数有多个线程运行。
class MyClass: IMyInterface
{
public event ObjectReceivedDelegate PriceResponse;
MyClass()
{
}
public void GetPrice(List<string> symbols)
{
//Call a long running function from a service in a background thread
}
void GetPricesAsync_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
PriceResponse(e.Result);
}
}
答案 0 :(得分:1)
您可以将Action传递给您的函数。喜欢
void SomeFunc(Action a)
{
// your code
a.Invoke();
}