最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET使用IResourceMonitor實(shí)現(xiàn)獲取資源信息

 更新時(shí)間:2024年01月22日 14:30:18   作者:rjcql  
在 Microsoft.Extensions.Diagnostics.ResourceMonitoring 包提供了一系列定制 API,專用于監(jiān)視 .NET 應(yīng)用程序的資源利用率,本文將利用IResourceMonitor來(lái)實(shí)現(xiàn)獲取資源狀態(tài)信息,感興趣的可以了解下

寫在前面

 在 Microsoft.Extensions.Diagnostics.ResourceMonitoring 包提供了一系列定制 API,專用于監(jiān)視 .NET 應(yīng)用程序的資源利用率。

為了讓控制臺(tái)輸出的樣式更美觀,可以安裝一下Spectre.Console這個(gè)包

本例主要通過(guò) IResourceMonitor 來(lái)獲取資源狀態(tài)信息,該接口支持檢索與 CPU 和內(nèi)存使用情況相關(guān)的數(shù)據(jù),并且當(dāng)前與 Windows 和 Linux 平臺(tái)兼容。

示例代碼中用到的 Microsoft.Extensions.Logging 類庫(kù)也需要通過(guò)NuGet安裝一下。 

代碼實(shí)現(xiàn)

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.ResourceMonitoring;
using Microsoft.Extensions.Logging;
using Spectre.Console;
 
public class Program
{
    public static void Main(string[] args)
    {
        var services = new ServiceCollection()
      .AddLogging()
      .AddResourceMonitoring();
 
        var provider = services.BuildServiceProvider();
 
        var monitor = provider.GetRequiredService<IResourceMonitor>();
        _ = StartMonitoringAsync(monitor, new CancellationToken());
 
        Console.ReadKey();
    }
     
    static async Task StartMonitoringAsync(IResourceMonitor monitor, CancellationToken cancellationToken)
    {
        var table = new Table()
            .Centered()
            .Title("Resource Monitoring", new Style(foreground: Color.Purple, decoration: Decoration.Bold))
            .Caption("Updates every three seconds. *GTD: Guaranteed ", new Style(decoration: Decoration.Dim))
            .RoundedBorder()
            .BorderColor(Color.Cyan1)
            .AddColumns(
            [
                new TableColumn("Time").Centered(),
                new TableColumn("CPU %").Centered(),
                new TableColumn("Memory %").Centered(),
                new TableColumn("Memory (bytes)").Centered(),
                new TableColumn("GTD / Max Memory (bytes)").Centered(),
                new TableColumn("GTD / Max CPU (units)").Centered(),
            ]);
 
        await AnsiConsole.Live(table)
            .StartAsync(async ctx =>
            {
                var window = TimeSpan.FromSeconds(3);
                while (cancellationToken.IsCancellationRequested is false)
                {
                    var utilization = monitor.GetUtilization(window);
                    var resources = utilization.SystemResources;
 
                    table.AddRow(
                        [
                            $"{DateTime.Now:T}",
                            $"{utilization.CpuUsedPercentage:p}",
                            $"{utilization.MemoryUsedPercentage:p}",
                            $"{utilization.MemoryUsedInBytes:#,#}",
                            $"{resources.GuaranteedMemoryInBytes:#,#} / {resources.MaximumMemoryInBytes:#,#}",
                            $"{resources.GuaranteedCpuUnits} / {resources.MaximumCpuUnits}",
                        ]);
 
                    ctx.Refresh();
                    await Task.Delay(window);
                }
            });
 
        Console.CancelKeyPress += (_, e) =>
        {
            e.Cancel = true;
        };
    }
 
}

調(diào)用示例

到此這篇關(guān)于.NET使用IResourceMonitor實(shí)現(xiàn)獲取資源信息的文章就介紹到這了,更多相關(guān).NET獲取資源信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c#獲取本機(jī)在局域網(wǎng)ip地址的二種方法

    c#獲取本機(jī)在局域網(wǎng)ip地址的二種方法

    在項(xiàng)目中經(jīng)常要獲取用戶的上網(wǎng)的IP地址,如何獲取用戶的IP地址,方法很多,現(xiàn)在介紹以下2種
    2014-01-01
  • C#實(shí)現(xiàn)系統(tǒng)信息監(jiān)控與獲取功能

    C#實(shí)現(xiàn)系統(tǒng)信息監(jiān)控與獲取功能

    在 C# 開發(fā)的眾多應(yīng)用場(chǎng)景中,獲取系統(tǒng)信息以及監(jiān)控用戶操作有著廣泛的用途,比如在系統(tǒng)性能優(yōu)化工具中,需要實(shí)時(shí)讀取 CPU、GPU 資源信息,本文將詳細(xì)介紹如何使用 C# 來(lái)實(shí)現(xiàn)這些功能,助力大家在開發(fā)中更好地與系統(tǒng)底層進(jìn)行交互,需要的朋友可以參考下
    2025-01-01
  • C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果

    C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)在窗體上的統(tǒng)計(jì)圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#開發(fā)中經(jīng)常用的加密解密方法示例

    C#開發(fā)中經(jīng)常用的加密解密方法示例

    這篇文章主要給大家介紹了關(guān)于C#開發(fā)中經(jīng)常用的加密解密方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Unity3D實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(1)

    Unity3D實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(1)

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 淺談C#設(shè)計(jì)模式之開放封閉原則

    淺談C#設(shè)計(jì)模式之開放封閉原則

    這篇文章主要介紹了淺談C#設(shè)計(jì)模式之開放封閉原則,需要的朋友可以參考下
    2014-12-12
  • C#移除字符串中的不可見Unicode字符 案例代碼

    C#移除字符串中的不可見Unicode字符 案例代碼

    最近發(fā)現(xiàn)某個(gè)數(shù)據(jù)采集的系統(tǒng)拿下來(lái)的數(shù)據(jù),有些字段的JSON被莫名截?cái)嗔?,?dǎo)致后續(xù)數(shù)據(jù)分析的時(shí)候解析JSON失敗,這篇文章主要介紹了C#移除字符串中的不可見Unicode字符 ,需要的朋友可以參考下
    2023-02-02
  • C#并發(fā)編程之a(chǎn)sync和await關(guān)鍵字詳解

    C#并發(fā)編程之a(chǎn)sync和await關(guān)鍵字詳解

    對(duì)于?async?和?await?兩個(gè)關(guān)鍵字,對(duì)于一線開發(fā)人員再熟悉不過(guò)了,到處都是它們的身影,下面小編就來(lái)和大家記錄匯總下它們的使用吧
    2023-07-07
  • C#寫入對(duì)象或集合類型數(shù)據(jù)到xml文件的方法

    C#寫入對(duì)象或集合類型數(shù)據(jù)到xml文件的方法

    這篇文章主要介紹了C#寫入對(duì)象或集合類型數(shù)據(jù)到xml文件的方法,涉及C#針對(duì)XML文件的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C# 7.0之ref locals and returns(局部變量和引用返回)

    C# 7.0之ref locals and returns(局部變量和引用返回)

    這篇文章主要介紹了C# 7.0之ref locals and returns,即局部變量和引用返回,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評(píng)論

民乐县| 五河县| 夹江县| 南部县| 吴旗县| 淄博市| 湖南省| 西峡县| 西贡区| 永川市| 鄂州市| 宾阳县| 孟州市| 平阳县| 焉耆| 新邵县| 浏阳市| 军事| 贵阳市| 昌黎县| 庆元县| 平利县| 扶余县| 巴楚县| 汕头市| 密山市| 金昌市| 庆元县| 宽甸| 涡阳县| 潞城市| 固安县| 鄂州市| 连云港市| 团风县| 出国| 宿迁市| 类乌齐县| 固原市| 潍坊市| 德江县|