标签: console-application

如何使用通用主机生成器运行 .NET Core 控制台应用程序

我试图弄清楚如何使用主机构建器模式来运行控制台应用程序(而不是 Windows 服务)。目的是保持流程与 WebApi 相似,以保持开发实践相似。我见过使用 HostedService 或 BackGroundService 的示例,他们希望将其作为 Windows 服务运行。但是,如果我想运行一个简单的控制台应用程序,我在哪里指定我的入口点类和方法?从 hostbuilder.Build() 中,我可以看到 Run() 和 RunAsync() 方法。但我无法弄清楚它会执行什么?

我已经看到了其他示例,您可以在其中创建 servicecollection,然后使用 serviceprovider.GetService().SomeMethod() 来启动该过程。但这有点偏离我们想要做的事情。所以请建议如何指定启动过程。我们正在使用 3.1 .Net Core。

class Program
{
    static async void Main(string[] args)
    {
        var host = CreateHostBuilder(args).Build();
        await host.RunAsync();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostBuilderContext, serviceCollection) => new Startup(hostBuilderContext.Configuration).ConfigureServices(serviceCollection))
        .UseSerilog()
        ; 

}
Run Code Online (Sandbox Code Playgroud)

c# console-application .net-core asp.net-core

62
推荐指数
2
解决办法
6万
查看次数

如何让win32控制台识别ANSI/VT100转义序列?

我正在构建一个轻量级的ncurses库.到目前为止,它与VT100兼容终端的效果非常好,但是win32控制台无法将\033代码识别为转义序列的开头:

# include <stdio.h>
# include "term.h"

int main(void) {
  puts(BOLD COLOR(FG, RED) "Bold text" NOT_BOLD " is cool!" CLEAR);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

截图

为了加载ANSI.SYS驱动程序并识别ANSI/VT100转义序列,需要在C代码级别上做什么?

windows terminal ncurses console-application ansi-escape

58
推荐指数
9
解决办法
6万
查看次数

如何在后台运行.NET控制台应用程序

我有一个用C#编写的控制台应用程序,计划使用内置的Windows任务计划程序每15分钟左右运行一次.

每次运行时,黑色控制台盒会在执行期间弹出,然后关闭.我没有在控制台上写任何东西.有没有办法在后台运行?

c# console-application

56
推荐指数
5
解决办法
7万
查看次数

CPU友好的无限循环

编写无限循环很简单:

while(true){
    //add whatever break condition here
}
Run Code Online (Sandbox Code Playgroud)

但这会破坏CPU的性能.此执行线程将尽可能多地从CPU的电源中获取.

降低对CPU影响的最佳方法是什么?添加一些Thread.Sleep(n)应该可以解决问题,但为Sleep()方法设置高超时值可能表示对操作系统的应用程序无响应.

假设我需要在控制台应用程序中每分钟执行一次任务.我需要继续Main()在"无限循环"中运行,而计时器将触发将完成工作的事件.我想保持Main()对CPU的最小影响.

你有什么方法可以建议.Sleep()可以,但正如我已经提到的,这可能表明操作系统没有响应.

后期编辑:

我想更好地解释一下我在寻找什么:

  1. 我需要一个控制台应用程序不是Windows服务.控制台应用程序可以使用Compact Framework模拟Windows Mobile 6.x系统上的Windows服务.

  2. 只要Windows Mobile设备运行,我需要一种方法让应用程序保持活动状态.

  3. 我们都知道控制台应用程序运行只要其静态Main()函数运行,所以我需要一种方法来阻止Main()函数退出.

  4. 在特殊情况下(例如:更新应用程序),我需要请求应用程序停止,因此我需要无限循环并测试某些退出条件.例如,这就是为什么Console.ReadLine()我没用.没有退出条件检查.

  5. 关于上面,我仍然希望Main()函数尽可能地对资源友好.让我们确定检查退出条件的函数的指纹.

.net c# console-application infinite-loop

53
推荐指数
2
解决办法
5万
查看次数

你如何清除C中的控制台屏幕?

是否有一种"正确"的方式来清除C中的控制台窗口,除了使用system("cls")

c windows console console-application

51
推荐指数
8
解决办法
34万
查看次数

C#如何将流重定向到控制台Out?

我发现了很多示例如何将控制台输出重定向到文件中.但是我需要一个相反的解决方案 - 我有StreamWriter,我希望在控制台输出中显示它sw.WriteLine("text");

.net c# console-application

51
推荐指数
2
解决办法
3万
查看次数

错误消息"CS5001程序不包含适用于入口点的静态'Main'方法"

无法执行以下代码错误CS5001程序不包含适用于入口点的静态"主"方法

这个错误信息是什么意思?

class Program
{
    static async Task MainAsync(string[] args)
    {
        Account.accountTest accountTest = new Account.accountTest();

        bool result = await accountTest.CreateAccountAsync();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# console console-application visual-studio-2017 .net-core-2.0

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

在控制台应用程序下找不到System.drawing命名空间

我选择了控制台应用程序作为我的C#项目.但似乎在Windows窗体项目下工作的导入似乎不适用于此.它表示绘图命名空间不存在.

using System.Drawing;
using System.Drawing.Imaging;
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要有位图类.我正在尝试制作一个命令行应用程序,对图像进行位图操作.这就是为什么我没有选择我的项目作为Windows窗体的一个.

c# namespaces bitmap console-application

48
推荐指数
7
解决办法
11万
查看次数

在C#控制台应用程序中,public static void Main()和private static void Main()有什么区别?

有什么区别

public static void Main()
Run Code Online (Sandbox Code Playgroud)

private static void Main()
Run Code Online (Sandbox Code Playgroud)

在C#控制台应用程序中?具体而言,因为它涉及到Main()方法(I明白之间的差异publicprivate).

c# console-application

48
推荐指数
4
解决办法
3万
查看次数

.NET Core控制台应用程序,如何为每个环境配置appSettings?

我有一个.NET Core 1.0.0控制台应用程序和两个环境.我需要能够使用appSettings.dev.jsonappSettings.test.json基于我在运行时设置的环境变量.对于ASP.NET Core Web应用程序来说,这似乎非常简单,通过依赖注入和IHostingEnvironment以及EnvironmentName env.变量,但是我应该如何为控制台应用程序连接(除了编写我自己使用的自定义代码Microsoft.Framework.Configuration.EnvironmentVariables)?

谢谢.

c# console-application .net-core

48
推荐指数
5
解决办法
4万
查看次数