从
the docs
事件是一种特殊的多播委托,只能从声明它们的类或结构(发布者类)中调用如果其他类或结构订阅事件,则当发布者类引发事件时,将调用它们的事件处理程序方法
所以在
Client.cs
您有一个名为
TickSize
. 此委托使其他类能够订阅与其关联的事件所以在你的职责范围内
void tickSize(int tickerId, int field, int size)
,您希望让所有其他订户知道发生了tick事件。
要做到这一点,首先要看看是否有订户在这里
null
签入发生在
if (tmp != null)
. 有
tmp
不需要,你可以
if(TickSize != null)
如果您注册了任何eventhandler,它将启动,订阅者将收到该调用在您的情况下,您确实有订阅者,因为您正在订阅中的事件
public AppDialog
使用此代码:
client.TickSize += client_TickSize;
所以无论何时
void tickSize(...)
被召入
客户群
,中的代码
void client_TickSize(...)
会跑的这将调用
HandleMessage
它将检查是否需要由
Invoke
函数,因为调用代码不在UI线程上如果需要调用它,请使用
援引
,然后它将使用当前控件的
援引
函数(不确定哪个控件
Form
). 这个
手语
会看到的
援引
不是必需的,因为调用方位于UI线程上,然后它将调用
UpdateUi
它将更新控件。