如何创建基本线程类以使用线程

时间:2017-04-29 06:53:38

标签: android multithreading android-asynctask runnable

我想创建Base类来向它发送任何函数以通过线程调用。 基于AsyncTask功能,我无法使用它,因为我将不仅从Main Activity调用另一个线程中的线程。 这是我的示例代码 在

的Android

public class BaseThread {
    public static Thread call(Function threadMethod)
    {
        Thread thread = new Thread()
        {
            @Override
            public void run()
            {
                threadMethod();
            }
        };
        thread.start();
        return thread;
    }
    public static Thread Call(Function threadMethod, Object parameter)
    {
        Thread thread = new Thread(threadMethod);
        thread.start();
        return thread;
    }
    public static void sleep(int millisecondsTimeout)
    {
        try {
            Thread.sleep(millisecondsTimeout);
        }
        catch (InterruptedException ex)
        {
           ///TODO Handle Exception and Logging
        }
    }
}

c#

中的示例
internal class BaseThread
{
    public static Thread Call(ThreadStart threadMethod)
    {
        Thread thread = new Thread(threadMethod);
        thread.Start();
        return thread;
    }
    public static Thread Call(ParameterizedThreadStart threadMethod, object parameter)
    {
        Thread thread = new Thread(threadMethod);
        thread.Start(parameter);
        return thread;
    }
    public static void Sleep(int millisecondsTimeout)
    {
        Thread.Sleep(millisecondsTimeout);
    }
}

应在方法而不是此行中设置哪种类型的变量:

call(Function threadMethod)

最新的做法是什么,而不是这个基类?

2 个答案:

答案 0 :(得分:0)

实际上,Thread可以被视为"基本线程类"因为您可以通过将Runnable / Callable实现放入构造函数来实现此类行为。将逻辑放入runnable的run方法中。但我强烈建议您不要使用纯线程并查看ExecutorService。祝你好运。

答案 1 :(得分:0)

Android有一个非常方便的类HandlerThread。您可以创建自定义线程并向其发布Runnables。它有一个嵌入的消息队列,每个消息都按顺序处理。