我试图弄清楚每个新的c#应用程序中出现的线程的目的是什么.我用空的Main函数创建了一个新的控制台应用程序:
static void Main(string[] args)
{
}
Run Code Online (Sandbox Code Playgroud)
并在函数的末尾放置一个断点,然后我查看了线程窗口:

有时它显示8个线程,有时7个线程.
任何人都可以解释所有这些线程的目的是什么,为什么我需要它们用于这样一个简单的项目?
我有一个包含多个项目的 git 存储库。每个项目的代码都可以在专用的子目录下找到。每个项目都有自己的部署过程。我希望当我在项目目录下推送提交时,它会部署正确的项目(并且仅部署它)。我目前正在使用 bitbucket pipeline,但是,它似乎没有这个选项。我怎样才能做到这一点?(我可以切换到另一个 CI/CD 工具)
git continuous-integration continuous-deployment bitbucket-pipelines
我有一种实现此接口的总线:
public interface IBus
{
void Publish<T>(T t);
void Subscribe<T>(Guid subscriptionId, Action<T> action);
void Unsubscribe<T>(Guid subscriptionId);
}
Run Code Online (Sandbox Code Playgroud)
以下是我如何使用它的示例:
public void PrintName()
{
IBus bus = new Bus();
var id = Guid.NewGuid();
bus.Subscribe<ReplyUserName>(id, replyUserName =>
{
bus.Unsubscribe<ReplyUserName>(id);
Console.WriteLine(replyUserName.UserName);
});
Bus.Publish(new RequestUserName());
}
Run Code Online (Sandbox Code Playgroud)
这里是RequestUserName和ReplyUserName类:
public class RequestUserName {}
public class ReplyUserName
{
public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但是我想写一个扩展方法,用异步包装它:
public static class BusExtension
{
public static async Task<TResult> Request<TRequest, TResult>(this IBus bus, TRequest request)
{
// TODO...
}
}
Run Code Online (Sandbox Code Playgroud)
这样我就能用这样的方式编写前面的代码: …