是否可以将一个方法传递给另一个方法? [复制]
Posted
技术标签:
【中文标题】是否可以将一个方法传递给另一个方法? [复制]【英文标题】:Is it possible to pass a method to another method? [duplicate] 【发布时间】:2019-02-15 01:05:39 【问题描述】:我想要一个可以传递另一个方法(不带任何参数)的方法。 在那个方法中,会有一个线程来调用传递的方法。
不太确定如何实现,但整个想法是这样的:
private static void Main(string[] args)
MethodStarter(Greet)
void MethodStarter(Method method)
ThreadStart starter = method;
_thread = new Thread(starter) IsBackground = true ;
_thread.Start();
void Greet()
ThreadPool.QueueUserWorkItem(new WaitCallback(SendAMessage), "Hello World");
Thread.Sleep(5000);
ThreadPool.QueueUserWorkItem(new WaitCallback(SendAMessage), "How are you today?");
Thread.Sleep(5000);
void SendAMessage(object arg)
Console.WriteLine(arg as string);
【问题讨论】:
看看“代表”。然后“Action”可能也很有趣。 你可以使用docs.microsoft.com/en-us/dotnet/api/… 【参考方案1】:实际上,您回答了问题中的问题。看看这一行:
ThreadStart starter = method;
您将method
分配给ThreadStart
类型的变量,因此method
也应该是ThreadStart
类型:
void MethodStarter(ThreadStart method)
// you don't actually need this line, just pass "method" directly
// ThreadStart starter = method;
_thread = new Thread(method) IsBackground = true ;
_thread.Start();
【讨论】:
这很有帮助。谢谢你:) 加 1 以提供“真实”答案:)以上是关于是否可以将一个方法传递给另一个方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
将 UI Thread 方法传递给另一个线程以在 C# 中调用
将arraylist传递给另一个类以检查可用性及其过期日期的方法
使用 Parse 方法 getObjectInBackgroundWithId 将 objectId 从 viewDidLoad 传递给另一个函数不起作用