C# 将自定义方法作为线程运行
在Java中,要运行一个单独的线程,我们必须实现Runnable接口或扩展thread类,因此实际上只有run方法可以用来启动一个新线程 在C中,我们可以使用 新的目标函数 因此,实际上在Java中,我们最终创建了一个单独的类,使函数能够作为线程运行。 那么有没有办法避免这种情况呢C# 将自定义方法作为线程运行,c#,java,multithreading,comparison,C#,Java,Multithreading,Comparison,在Java中,要运行一个单独的线程,我们必须实现Runnable接口或扩展thread类,因此实际上只有run方法可以用来启动一个新线程 在C中,我们可以使用 新的目标函数 因此,实际上在Java中,我们最终创建了一个单独的类,使函数能够作为线程运行。 那么有没有办法避免这种情况呢 我希望避免在体系结构中进行任何更改,而且方法本身也不是很长,它只是两个循环,非常耗时。就我的Java知识而言:运行线程的唯一方法是通过提供的任何方式(如您指定的方式)调用run 但是,您可以在运行中调用您的方法。在j
我希望避免在体系结构中进行任何更改,而且方法本身也不是很长,它只是两个循环,非常耗时。就我的Java知识而言:运行线程的唯一方法是通过提供的任何方式(如您指定的方式)调用run
但是,您可以在运行中调用您的方法。在java中,函数或更好的方法本身不是对象,因此必须创建这样的包装器来执行所需的操作
new Thread() {
public void run() {
originalMethod();
}
}.start();
虽然并不完美,但可以使用匿名内部类来包装函数。在单独线程上执行函数的代码如下所示:
Thread t = new Thread () {
public void run()
{
myMethodHere();
}
};
t.start();
您可以创建一个助手方法,该方法使用反射来实现
backgroundMethod("methodName");
或
除非您经常这样做,否则使用其他人建议的Runnable可能会更好/更清晰
backgroundMethod(object, "methodName");