2012-05-23 53 views
0

我在理解從何處開始的一些問題 - 我開發了一個可以訪問SQL Express數據庫並通過DataSet處理的表單。我還開發了一個類,它通過專有協議在多線程TCP服務器上偵聽來自其他客戶端的更新。C#多線程代理和事件

我需要做的是獲取這些更新到窗體,其中有要更新的數據集的實例。

我已經檢查了一些事件和代表的幫助在這裏和this guide開始時似乎很方便,但遭受同樣的問題,這些例子很多 - 他們不是很清楚發生了什麼事情,並最終在兩個類中使用類似的變量。

哪一類是「訂戶」,哪一類是「發佈者」?我真的很厭惡表單編程,並且完全是基於命令行的,但是這對於一羣電腦不識字的人來說,他們可能會因使用提示而受到創傷。

+4

我相信你的最終用戶會像你愛他們一樣愛你。 –

+0

你應該啓動一個瀏覽器渲染器並在HTML/Javascript中執行接口 – FlavorScape

回答

0

發佈者是其類聲明事件的對象。例如,DataTable發佈RowChanged事件。

處理事件的對象是訂戶。例如,具有_table字段一個類可以訂閱RowChanged事件從而(假設的處理方法存在,當然):

this._table.RowChanged += this.HandleRowChanged; 

有時,一類可以訂閱它自己的事件。一個例子就是Windows窗體的Load事件。這使用了比所需更多的開銷,並且一些框架提供虛擬方法來允許子類擴展基類的功能而不創建事件委託。這就是Form的OnLoad方法是虛擬的原因。