gpt4 book ai didi

c# - 使用委托(delegate)将方法签名传递给线程

转载 作者:行者123 更新时间:2023-11-30 22:30:42 25 4
gpt4 key购买 nike

为了表示在线程上执行的方法,我使用
ParameterizedThreadStart
并传递方法的名称。在这种情况下,方法名称是 SelectJob,实例化如下:

ParameterizedThreadStart starter = new ParameterizedThreadStart(SelectJob);

protected void SelectJob(object index)
{
...
}

为了重用一部分代码,如果可能的话,我想将方法​​名称存储在变量中,但 IntelliSense 将 ParameterizedThreadStart 的方法签名显示为 ParameterizedThreadStart(void ( object) target) 而且我不确定如何存储这种值。来自 MSDN我意识到这是一个委托(delegate)所以在阅读后 How to: Declare, Instantiate, and Use a Delegate我试图声明...

delegate void Del(string str);
Del selectDelegate = SelectJob;

...但是由于 SelectJob 方法不是静态的,所以我无法执行此操作。简单地使方法静态化并不是一个简单的选择。

是否有其他方式进行此声明?

谢谢!

最佳答案

在构造函数中初始化委托(delegate)实例?

public class MyClass
{
private ParameterizedThreadStart starter;

public MyClass()
{
starter = SelectJob;

Del selectDelegate = SelectJob;
}

delegate void Del(string str);

protected void SelectJob(object index)
{

}
}

关于c# - 使用委托(delegate)将方法签名传递给线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9585809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com