服务与线程

时间:2016-09-24 04:20:20

标签: c# android multithreading xamarin

我应该使用什么来制作一个应用程序:

  1. 询问用户的用户名和密码
  2. 授权
  3. 运行无限循环,每隔10秒左右就会从网站上获取一些数据。
  4. 我希望能够在此期间执行一些基本任务,或者在没有线程被杀的情况下锁定我的屏幕。关闭应用程序后,我不希望服务继续运行,我只是想确保线程在运行很长时间后永远不会被杀死。

    我还想问:服务是否像线程一样容易互动?我可以在其中传递CancellationToken并在用户按下停止按钮时将其取消吗?

    我也找到setThreadPriority,在我的情况下会有帮助吗?

2 个答案:

答案 0 :(得分:2)

服务和线程是完全不同的概念。线程是一个并行执行的独立进程。服务是应用程序的一个组件,它没有UI并且具有单独的生命周期。服务不在自己的线程上运行,它在UI线程上运行(尽管它可以根据需要启动一个线程)。

如果您想执行某项任务但未绑定到Android Activity生命周期,则可以使用服务。如果要并行运行,请使用Thread。如果你想要两者,那么你使用一个启动线程的服务。

从我正在阅读的内容(你不希望Thread在Activity完成后继续),你想要一个线程而不是一个服务。

答案 1 :(得分:0)

服务可以独立运行(而您的应用程序不一定正在运行)。可以从您的应用程序本身或服务中分离出一个帖子。