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

时间:2012-09-21 21:34:07

标签: c# asp.net .net task task-parallel-library

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

2 个答案:

答案 0 :(得分:0)

创建工人类:

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!
        }

答案 1 :(得分:0)

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

Asynchronous Operations