我有一个wcf服务,将产生多个任务。我正在寻找一种方法来将信息提供给父线程(并最终通过数据合同向客户端提供信息)将消息从子任务传递给父c#
要完成的工作在单独的类中。在主类,我开始我的任务是这样的:
CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken token = tokenSource.Token;
Task[] arrTask = new Task[lstTasks.Count];
int i = 0;
foreach(LabParser classA in lstTasks)
{
try
{
var t = Task.Factory.StartNew(clsa.ProcessLabs,token);
arrTask[i] = t;
i++;
}
catch (Exception e)
{
string tmp = e.ToString();
}
}
Task.WaitAll(arrTask);
所以在classA.ProcessLabs我要去了不少工作。我希望能够向这位家长发送一条消息,提供一些关于线程当前状态的信息。 我习惯于在vb中使用委托和事件并引发事件。 我似乎无法找到在C#中执行此操作的等效方法。
使用委托时,几乎不需要定义自己的委托。您几乎总是可以使用系统定义的代表之一,通常是“Action”或“Func”。 – Servy
同意,但在您可以使用系统定义的代表之前,您必须先了解如何创建他们自己以及他们的工作方式,然后才能开始使用捷径。 – Marko
这是为什么?你几乎不需要定义你自己的代表;您几乎可以始终使用系统委托。如果/当你发现自己在极少数情况下需要创建自己的时候,它很简单,可以查看如何。我没有看到如何定义委托的语法,因为它可以帮助你理解委托是什么。 – Servy