2016-05-30 33 views
0

我想在ASP.NET中创建一个通知系统,它侦听数据库事件并将一些信息发送到设备数量。如何在ASP.NET中创建一个回调函数,在数据库事件引发时调用该函数?

这是类是负责捕获的事件的一个示例:

public class FbEventClass 
    { 
     private static FbEventClass eventController = null; 
     public static void CreateEventController(string connectionString) 
     { 
      if (eventController == null) 
      { 
       eventController = new FbEventClass(connectionString); 
       eventController.AddListener(MessageListener); 
      } 
     } 

     FbConnection connection; 
     FbRemoteEvent revent; 

     public FbEventClass(string connectionString) 
     { 
      connection = new FbConnection(connectionString); 
      connection.Open(); 

      revent = new FbRemoteEvent(connection); 
      revent.AddEvents(String[] { "TEST" }); 
     } 

     public static void MessageListener(object sender, FbRemoteEventEventArgs e) 
     { 
      SendNotification("Message recieved"); 
     } 
    } 

创建从控制器静态对象:

FbEventClass.CreateEventController(dt.connectionString); 

的问题是,该消息监听()方法永远不会被调用。如果我再次调用控制器,则该对象不为null。

回答

0

我终于找到了答案。这可能不是完美的解决方案,但它适用于我。我只是将CreateEventController()添加到一个线程中。

ThreadPool.QueueUserWorkItem((o) => 
    { 
     FbEventClass.CreateEventController(cc); 
    }); 
相关问题