C# 将自定义方法作为线程运行

C# 将自定义方法作为线程运行,c#,java,multithreading,comparison,C#,Java,Multithreading,Comparison,在Java中,要运行一个单独的线程,我们必须实现Runnable接口或扩展thread类,因此实际上只有run方法可以用来启动一个新线程 在C中,我们可以使用 新的目标函数 因此,实际上在Java中,我们最终创建了一个单独的类,使函数能够作为线程运行。 那么有没有办法避免这种情况呢 我希望避免在体系结构中进行任何更改,而且方法本身也不是很长,它只是两个循环,非常耗时。就我的Java知识而言:运行线程的唯一方法是通过提供的任何方式(如您指定的方式)调用run 但是,您可以在运行中调用您的方法。在j

在Java中,要运行一个单独的线程,我们必须实现Runnable接口或扩展thread类,因此实际上只有run方法可以用来启动一个新线程

在C中,我们可以使用 新的目标函数

因此,实际上在Java中,我们最终创建了一个单独的类,使函数能够作为线程运行。 那么有没有办法避免这种情况呢


我希望避免在体系结构中进行任何更改,而且方法本身也不是很长,它只是两个循环,非常耗时。

就我的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");