小编Chr*_*all的帖子

如何启动异步任务对象

我想同时启动一个Task对象集合,等待所有对象完成.以下代码显示了我想要的行为.

public class Program
{
    class TaskTest
    {
        private Task createPauseTask(int ms)
        {
            // works well
            return Task.Run(async () =>
            // subsitution: return new Task(async () =>
            {
                Console.WriteLine($"Start {ms} ms pause");
                await Task.Delay(ms);
                Console.WriteLine($"{ms} ms are elapsed");
            });
        }

        public async Task Start()
        {
            var taskList= new List<Task>(new[]
            {
                createPauseTask(1000),
                createPauseTask(2000)
            });
            // taskList.ForEach(x => x.Start());
            await Task.WhenAll(taskList);
            Console.WriteLine("------------");
        }
    }

    public static void Main()
    {
        var t = new TaskTest();
        Task.Run(() => t.Start());
        Console.ReadKey();
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# task async-await

2
推荐指数
1
解决办法
248
查看次数

源生成器:有关引用项目的信息?

我开始使用 C# 源生成器。

我想要的是启动一个git describe --tags --long进程并GitVersion使用当前标签和哈希代码作为属性填充静态类。

问题是,我没有关于引用项目的目录的信息,所以我不知道在哪里运行 git 进程。GeneratorExecutionContext我在函数的参数中找不到任何有用的信息Execute

AppDomain.CurrentDomain指向 csc.exe 进程,所以我想没有办法知道它在那里?

c# code-generation sourcegenerators

2
推荐指数
1
解决办法
1978
查看次数