如何延迟WCF服务中的进程?

时间:2012-12-21 09:25:25

标签: c# wcf

如何在WCF服务中延迟进程?

我在WCF应用程序中添加了一项额外的新服务。 在WCF服务中调用方法时,将打开数据库并执行LINQ查询。 但现在有了额外的服务。 LINQ查询不再起作用了。我调试了出了什么问题。 我在方法中退后(通过调试)时看到,所以我调用LINQ查询两次,然后查询在第二次中正确执行。 通过打开数据库和执行查询,必须在此过程中添加延迟。但是如何?

有谁可以告诉我该怎么做?

...谢谢

在服务中:

namespace MHcService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class ArtiestService : IArtiestService
    {
...
        public ArtiestRecord[] GetArtiestlijst(out ResultClass AResult, int AID_Genre, string AFilter)
        {
            Databeheer FDatabeheer = Databeheer.GetInstance();
            return ArtiestlijstToArray(ArtiestDataManager.Artiestlijst(out AResult, AID_Genre, AFilter));
        }

namespace MHcService.Database
{
    public static class DatabaseControl
    {
        private static Databeheer FDatabeheer = Databeheer.GetInstance();
        public static Databeheer GetDatabeheer { get { return FDatabeheer; } }
    }

    public class Databeheer
    {
...
        public DatamodelDataContext DataContext { get { return FDataContext; } }
        private static Databeheer FUniqueInstance;
        private static object FLockObject = new object();
        public static Databeheer GetInstance()
        {
            if (FUniqueInstance == null)
            {
                lock (FLockObject)
                {
                    if (FUniqueInstance == null)
                    {
                        FUniqueInstance = new Databeheer();
                    }
                }
            }

            return FUniqueInstance;
        }

        private Databeheer()
        {
            Initialize();
        }

        private void Initialize()
        {
            FApplicatieDefinities = ApplicatieDefinities.GetInstance();
            FApplicatieDefinities.Read();

            FDatabasenaam = FApplicatieDefinities.ParamsApplicatie.Databasenaam;
            FPadnaam = FApplicatieDefinities.ParamsApplicatie.Directories[DirectoryIndex.iDIR_DATABASE];
            FServernaam = FApplicatieDefinities.ParamsApplicatie.Servernaam;
            FDbBestandsnaam = FDatabasenaam + ConstAlgemeen.sEXT_MDF;
            FLogBestandsnaam = FDatabasenaam + "_LOG" + ConstAlgemeen.sEXT_LDF;
            FConnectionToSql = new SqlConnection(SqlServerConnectieString);
            FDataContext = new DatamodelDataContext(GetSqlServerConnectie());
        }

Link of the method< =这是该方法的来源(LINQ查询)通过这个问题,我没有得到我想要阅读的答案。所以我不想展示这个问题的来源。

0 个答案:

没有答案