2016-05-30 17 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); 

問題がMessageListenerの(ということです)メソッドは呼び出されません。コントローラをもう一度呼び出すと、オブジェクトはnullではありません。

答えて

0

私は最終的に答えを見つけることができます。それは完璧な解決策ではないかもしれませんが、私のために働きます。私はちょうどスレッドにCreateEventController()を追加しました。

ThreadPool.QueueUserWorkItem((o) => 
    { 
     FbEventClass.CreateEventController(cc); 
    }); 
関連する問題