C# 向服务器端添加异步代码支持

C# 向服务器端添加异步代码支持,c#,asp.net,.net,task,task-parallel-library,C#,Asp.net,.net,Task,Task Parallel Library,我需要在服务器端编写一些并行代码。我知道中的异步功能。净额4.5。 但我需要在中实现它。净4。 如何制作并行代码并等待它完成。是否有一个使用TPL库的示例。 我的服务器端是一个Wcf服务,我按顺序调用数据库,直到得到最终结果。这些调用可以并行并在短时间内获取所有数据。 提前谢谢 创建工人类: public class AsyncClass { public delegate void WorkFinishedDelegate(); public event WorkFinish

我需要在服务器端编写一些并行代码。我知道中的异步功能。净额4.5。 但我需要在中实现它。净4。 如何制作并行代码并等待它完成。是否有一个使用TPL库的示例。 我的服务器端是一个Wcf服务,我按顺序调用数据库,直到得到最终结果。这些调用可以并行并在短时间内获取所有数据。 提前谢谢

创建工人类:

public class AsyncClass
{
    public delegate void WorkFinishedDelegate();

    public event WorkFinishedDelegate WorkFinishedEvent;

    public void StartJob()
    {
        System.Threading.ThreadStart ts = new System.Threading.ThreadStart(DoSomeJob);
        System.Threading.Thread th = new System.Threading.Thread(ts);
        //this will stast async thread...
        th.Start();
    }

    void DoSomeJob()
    { 
        //TODO: do your job


        //nofity you have completed...
        if (WorkFinishedEvent!= null)
        {
            WorkFinishedEvent();
        }
    }
}
给你们班打电话:

        AsyncClass ac = new AsyncClass();
        ac.WorkFinishedEvent += new AsyncClass.WorkFinishedDelegate(ac_WorkFinishedEvent);
        ac.StartJob();

        void ac_WorkFinishedEvent()
        {
            //here you have been notified!
        }

对于数据库,ADO具有异步支持


定义服务器端。需要更清楚地知道你想做什么。平行。每个街区。问题太笼统了。并行类将是您想要的,它上面有哪些方法,从这些小信息无法判断。我在服务器端有一个Wcf服务。我正在对数据库进行调用,我想并行db调用,这样我可以节省时间,直到得到最终结果。我想在我的Wcf服务中使用此代码,所以我需要等到worker完成。你仍然可以使用此代码,你只需要创建一个循环。以下是如何做到这一点:1。在AsyncClass内添加bool属性HasFinished。2.内部DoSomeJob方法集HasFinished=true;3.调用ac.StartJob()后;创建while循环,在该循环中等待ac.HasFinished==true;4.这就是您所需要的:)