joj*_*ojo 4 c# parameters delegates
假设我有一个功能
public void SendMessage(Message message)
{
// perform send message action
}
Run Code Online (Sandbox Code Playgroud)
我可以为这种功能创建一个委托吗?如果是这样,我在使用委托时如何传递消息?
在我的例子中,该函数由Thread使用.每当有事件发生时,我都需要向服务器发送一条消息,以保存记录.我还需要让它在后台运行,这样它就不会影响应用程序.但是,线程需要使用委托
Thread t = new Thread(new ThreadStart(SendMessage));
Run Code Online (Sandbox Code Playgroud)
我不知道如何将消息传递给代表.谢谢.
Jar*_*Par 11
当然
public delegate void DelWithSingleParameter(Message m);
Run Code Online (Sandbox Code Playgroud)
传递消息可以通过以下方式完成
DelWithSingleParameter d1 = new DelWithSingleParameter(this.SomeMethod);
d1(new Message());
Run Code Online (Sandbox Code Playgroud)
同样,@ Mehrdad在框架的较新版本中指出,您不再需要定义此类委托.而是重用现有Action<T>委托进行此类操作.
Action<Message> d1 = new Action<Message>(this.SomeMethod);
d1(new Message());
Run Code Online (Sandbox Code Playgroud)