Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务与线程_C#_Android_Multithreading_Xamarin - Fatal编程技术网

C# 服务与线程

C# 服务与线程,c#,android,multithreading,xamarin,C#,Android,Multithreading,Xamarin,我应该使用什么来制作一个能够: 询问用户用户名和密码 授权 运行一个infinite循环,每隔10秒左右从网站获取一些数据 我希望在此期间能够完成一些基本任务,或者锁定屏幕而不会导致线程死机。我不希望服务在关闭应用程序后继续运行,我只想确保线程在长时间运行时不会被终止 我还想问:服务是否像线程一样易于交互?我可以在其中传递一个CancellationToken,并在用户按下停止按钮时取消它吗 我还发现了setThreadPriority,它对我有帮助吗?服务和线程是完全不同的概念。线程是并行执行

我应该使用什么来制作一个能够:

  • 询问用户用户名和密码
  • 授权
  • 运行一个infinite循环,每隔10秒左右从网站获取一些数据
  • 我希望在此期间能够完成一些基本任务,或者锁定屏幕而不会导致线程死机。我不希望服务在关闭应用程序后继续运行,我只想确保线程在长时间运行时不会被终止

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


    我还发现了
    setThreadPriority
    ,它对我有帮助吗?

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

    如果您想执行某些任务,但不受Android活动生命周期的约束,则可以使用服务。如果要并行运行,则使用线程。如果两者都需要,则使用启动线程的服务


    从我所读到的(您不希望线程在活动完成后继续),您想要的是线程而不是服务。

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

    如果您想执行某些任务,但不受Android活动生命周期的约束,则可以使用服务。如果要并行运行,则使用线程。如果两者都需要,则使用启动线程的服务


    据我所知(你不希望线程在活动完成后继续),你想要的是线程而不是服务。

    服务可以独立运行(而你的应用程序不一定在运行)。线程可以从应用程序本身或服务中分离出来。

    服务可以独立运行(而应用程序不一定在运行)。线程可以从应用程序本身或服务中分离出来。

    但我想要的是“隔离”的反面。我想与它交互,就像我与线程交互一样。在我关闭应用程序后,它不需要继续运行。我只是需要这个工作运行,无论什么,我正试图找到最好的方式来做到这一点,你可能想看看。这些服务是您的活动可以与之交互的服务。也许这会有帮助,但我想要的是“孤立”的反面。我想与它交互,就像我与线程交互一样。在我关闭应用程序后,它不需要继续运行。我只是需要这个工作运行,无论什么,我正试图找到最好的方式来做到这一点,你可能想看看。这些服务是您的活动可以与之交互的服务。如果我不做任何耗费资源的事情,这可能会帮助线程无限运行吗?线程运行直到线程的函数返回或应用程序退出。请注意-应用程序退出,而不是活动。仅仅完成活动不会杀死线程,当活动被销毁时,您需要取消它,以便它可以自行退出。>线程运行直到线程的函数返回或应用程序退出。这是事实,但说明:一个进程持有一个用户当前看不到的活动,对用户体验没有直接影响,系统可以随时杀死它们,为前台、可见或服务进程回收内存。@sooqua这是事实。但任何事情都是如此。如果操作系统决定需要其资源,则当前不是前台应用程序的任何应用程序都可以随时终止。这是无法避免的。好吧,那么我将使用线程,希望Android不会在某个时候决定杀死它。谢谢。如果我不做任何耗费资源的事情,线程会无限运行吗?线程会一直运行,直到线程的函数返回或应用程序退出。请注意-应用程序退出,而不是活动。仅仅完成活动不会杀死线程,当活动被销毁时,您需要取消它,以便它可以自行退出。>线程运行直到线程的函数返回或应用程序退出。这是事实,但说明:一个进程持有一个用户当前看不到的活动,对用户体验没有直接影响,系统可以随时杀死它们,为前台、可见或服务进程回收内存。@sooqua这是事实。但任何事情都是如此。如果操作系统决定需要其资源,则当前不是前台应用程序的任何应用程序都可以随时终止。这是无法避免的。好吧,那么我将使用线程,希望Android不会在某个时候决定杀死它。非常感谢。