C#定時器中呼叫WCF服務+自定義回撥函式

小弟季義欽發表於2013-08-30

專案中需要使用一個定時器,按一定的時間間隔呼叫WCF服務從伺服器端載入一些快取到客戶端。

C#中有三種定時器:

(1)Form中的那個;

(2)System.Threading中的那個;

(3)System.Timers中的那個;

我開始使用的是第二種,然後再定時器執行的回撥函式中呼叫WCF服務,沒想到導致我的定時器只能執行一次,此後便不再執行。

然後我換成第三種定時器,在其事件處理函式中呼叫WCF服務,就可以正確執行了。


至於原因,專案做完再研究吧。


================================== 慵懶的分割線 =================================================

另外今天要為另一個模組提供一個介面,完成的工作是建立一個執行緒,建立一個命名管道的伺服器端,在死迴圈中一直等待來自客戶端的命名管道連線,如果有客戶端鏈 接過來,則接受其傳來的一個介面ID,開啟對應的介面。

因為開啟介面是在死迴圈中做,而且我需要提供出一個介面,所以就想到讓呼叫這個介面的人傳一個回撥函式進來,當迴圈中接收到客戶端的連線以及傳過來的介面ID之後,呼叫這個回撥函式,然後介面使用者就可以在自己的回撥函式中進行對應介面的開啟操作了。


我參考了第二種定時器的回撥函式的寫法,很簡單就實現了這個回撥函式的功能。

如果你也要實現一個回撥函式的功能,或者說做一個包含回撥函式的介面,你也可以參考第二種定時器的回撥函式的實現方式。

相關文章