小编Dav*_*rpe的帖子

检查CancellationToken是否已被取消

我创建了一个小演示项目来帮助我了解如何使用取消令牌。我知道您取消令牌并检查是否已请求取消,但是有没有办法可以检查取消是否已实现?在下面的示例中,我不想再次运行 Work(),直到 DoWork() 完成运行。

public class Program
{
    public static CancellationTokenSource tokenSource;

    private static void Main(string[] args)
    {
        while (true)
        {
            Work();
        }
    }

    public static async void Work()
    {
        tokenSource = new CancellationTokenSource();
        Console.WriteLine("Press any key to START doing work");
        Console.ReadLine();
        Console.WriteLine("Press any key to STOP doing work");
        DoWork(tokenSource.Token);
        Console.ReadLine();
        Console.WriteLine("Stopping...");
        tokenSource.Cancel();
    }

    public static async void DoWork(CancellationToken cancelToken)
    {
        while (true)
        {
            Console.WriteLine("Working...");
            await Task.Run(() =>
            {
                Thread.Sleep(1500);
            });

            if (cancelToken.IsCancellationRequested)
            {
                Console.WriteLine("Work Cancelled!");

                return;
            }
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous cancellationtokensource

4
推荐指数
1
解决办法
9514
查看次数

如何创建 Xamarin 前台服务

尝试创建我的第一个 Xamarin 前台服务,但找不到合适的示例。Microsoft 文档中的示例似乎不完整或使用了折旧的 Notification.Builder:

https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/services/foreground-services

https://docs.microsoft.com/en-us/samples/xamarin/monodroid-samples/applicationfundamentals-servicesamples-foregroundservicedemo/

我发现了一个似乎是最新的代码示例,但我正在努力通过查看代码来破译它的工作原理:

https://docs.microsoft.com/en-us/samples/xamarin/monodroid-samples/android-o-androidplaylocation-locupdfgservice/

谁能给我一个如何创建基本前台服务的例子?

c# android visual-studio xamarin.android xamarin

4
推荐指数
1
解决办法
5262
查看次数