Redpoint.ProgressMonitor 2025.1209.264

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Redpoint.ProgressMonitor --version 2025.1209.264
                    
NuGet\Install-Package Redpoint.ProgressMonitor -Version 2025.1209.264
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Redpoint.ProgressMonitor" Version="2025.1209.264" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Redpoint.ProgressMonitor" Version="2025.1209.264" />
                    
Directory.Packages.props
<PackageReference Include="Redpoint.ProgressMonitor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Redpoint.ProgressMonitor --version 2025.1209.264
                    
#r "nuget: Redpoint.ProgressMonitor, 2025.1209.264"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Redpoint.ProgressMonitor@2025.1209.264
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Redpoint.ProgressMonitor&version=2025.1209.264
                    
Install as a Cake Addin
#tool nuget:?package=Redpoint.ProgressMonitor&version=2025.1209.264
                    
Install as a Cake Tool

Redpoint.ProgressMonitor

This library provides APIs for monitoring and reporting the progress of arbitrary operations in console applications.

Read on for the following examples:

Example for a generic stream

You can monitor an operation that uses a stream like so:

// Inject these services.
IProgressFactory _progressFactory;
IMonitorFactory _monitorFactory;

using (var stream = new FileStream(...))
{
    // Start monitoring.
    var cts = new CancellationTokenSource();
    var progress = _progressFactory.CreateProgressForStream(stream);
    var monitorTask = Task.Run(async () =>
    {
        var monitor = _monitorFactory.CreateByteBasedMonitor();
        await monitor.MonitorAsync(
            progress,
            SystemConsole.ConsoleInformation,
            SystemConsole.WriteProgressToConsole,
            cts.Token);
    });

    // e.g. hash the stream.
    byte[] hashBytes;
    using (var hasher = SHA256.Create())
    {
        hashBytes = await hasher.ComputeHashAsync(stream);
    }

    // Stop monitoring.
    await SystemConsole.CancelAndWaitForConsoleMonitoringTaskAsync(monitorTask, cts);
}

Example for a HTTP download

If you're reporting progress on a HTTP stream, there's a few extra things to keep in mind:

  • You need to pass HttpCompletionOption.ResponseHeadersRead as the completion option, or HttpClient will buffer the entire response by default.
  • You need to wrap the stream you read from in PositionAwareStream, which is a class provided by this library. Since the underlying HTTP stream does not support Position or Length, this wrapping stream tracks the position as the stream is read from and allows the length to be passed in as a constructor parameter (which you should set based on the Content-Length header).

Below is a concise example of how to show the progress of downloading a file:

using (var client = new HttpClient())
{
    using (var target = new FileStream(targetPath, FileMode.Create, FileAccess.Write, FileShare.None))
    {
        var response = await client.GetAsync(downloadUrl, HttpCompletionOption.ResponseHeadersRead);
        using (var stream = new PositionAwareStream(
            await response.Content.ReadAsStreamAsync(),
            response.Content.Headers.ContentLength!.Value))
        {
            var cts = new CancellationTokenSource();
            var progress = _progressFactory.CreateProgressForStream(stream);
            var monitorTask = Task.Run(async () =>
            {
                var monitor = _monitorFactory.CreateByteBasedMonitor();
                await monitor.MonitorAsync(
                    progress,
                    SystemConsole.ConsoleInformation,
                    SystemConsole.WriteProgressToConsole,
                    cts.Token);
            });

            await stream.CopyToAsync(target);
            
            await SystemConsole.CancelAndWaitForConsoleMonitoringTaskAsync(monitorTask, cts);
        }
    }
}

The SystemConsole static class

The SystemConsole type provides common values for monitoring parameters, such as the current console information and rendering progress information to the console. You should replace the static values in the examples above with your own callbacks and values if you're not rendering progress to the console.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Redpoint.ProgressMonitor:

Package Downloads
Redpoint.PackageManagement

Provides APIs for installing, upgrading and uninstalling packages with WinGet and Homebrew.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2025.1253.415 175 9/10/2025
2025.1251.740 164 9/8/2025
2025.1249.408 111 9/6/2025
2025.1245.159 176 9/2/2025
2025.1241.1004 200 8/29/2025
2025.1241.337 218 8/29/2025
2025.1241.335 213 8/29/2025
2025.1239.82 218 8/27/2025
2025.1236.697 201 8/24/2025
2025.1235.897 106 8/23/2025
2025.1234.740 129 8/22/2025
2025.1234.625 137 8/22/2025
2025.1234.484 141 8/22/2025
2025.1234.426 148 8/22/2025
2025.1234.329 149 8/22/2025
2025.1234.304 155 8/22/2025
2025.1234.279 158 8/22/2025
2025.1234.210 162 8/22/2025
2025.1234.185 154 8/22/2025
2025.1234.108 167 8/22/2025
2025.1234.70 168 8/22/2025
2025.1233.957 174 8/21/2025
2025.1233.933 171 8/21/2025
2025.1233.915 162 8/21/2025
2025.1233.885 157 8/21/2025
2025.1233.764 176 8/21/2025
2025.1233.694 167 8/21/2025
2025.1233.677 172 8/21/2025
2025.1233.212 169 8/21/2025
2025.1233.74 165 8/21/2025
2025.1233.72 167 8/21/2025
2025.1233.28 166 8/21/2025
2025.1232.155 174 8/20/2025
2025.1232.154 168 8/20/2025
2025.1232.104 166 8/20/2025
2025.1232.102 169 8/20/2025
2025.1231.1026 174 8/19/2025
2025.1231.941 175 8/19/2025
2025.1231.499 165 8/19/2025
2025.1231.484 169 8/19/2025
2025.1231.297 167 8/19/2025
2025.1230.859 167 8/18/2025
2025.1228.220 105 8/16/2025
2025.1227.934 132 8/15/2025
2025.1227.904 126 8/15/2025
2025.1227.852 126 8/15/2025
2025.1227.816 129 8/15/2025
2025.1227.77 169 8/15/2025
2025.1226.857 176 8/14/2025
2025.1226.472 180 8/14/2025
2025.1226.163 180 8/14/2025
2025.1222.583 179 8/10/2025
2025.1222.562 177 8/10/2025
2025.1222.437 177 8/10/2025
2025.1222.425 172 8/10/2025
2025.1220.271 240 8/8/2025
2025.1220.225 237 8/8/2025
2025.1220.80 246 8/8/2025
2025.1219.568 251 8/7/2025
2025.1219.546 254 8/7/2025
2025.1219.514 250 8/7/2025
2025.1219.513 246 8/7/2025
2025.1219.511 244 8/7/2025
2025.1219.421 252 8/7/2025
2025.1219.377 248 8/7/2025
2025.1219.362 253 8/7/2025
2025.1219.361 248 8/7/2025
2025.1218.1281 253 8/6/2025
2025.1218.1266 248 8/6/2025
2025.1218.1264 252 8/6/2025
2025.1218.1255 253 8/6/2025
2025.1218.1223 254 8/6/2025
2025.1218.1180 249 8/6/2025
2025.1218.1166 242 8/6/2025
2025.1218.1154 249 8/6/2025
2025.1218.1088 255 8/6/2025
2025.1218.595 249 8/6/2025
2025.1218.554 252 8/6/2025
2025.1218.544 247 8/6/2025
2025.1218.523 249 8/6/2025
2025.1218.499 256 8/6/2025
2025.1218.427 256 8/6/2025
2025.1218.415 250 8/6/2025
2025.1218.187 254 8/6/2025
2025.1218.174 251 8/6/2025
2025.1218.148 251 8/6/2025
2025.1218.123 249 8/6/2025
2025.1217.886 252 8/5/2025
2025.1217.560 250 8/5/2025
2025.1217.516 256 8/5/2025
2025.1217.512 259 8/5/2025
2025.1217.503 260 8/5/2025
2025.1216.1103 217 8/4/2025
2025.1216.1025 213 8/4/2025
2025.1216.978 194 8/4/2025
2025.1216.897 191 8/4/2025
2025.1216.893 190 8/4/2025
2025.1216.884 194 8/4/2025
2025.1216.873 189 8/4/2025
2025.1216.824 192 8/4/2025
2025.1216.767 192 8/4/2025
2025.1216.745 197 8/4/2025
2025.1216.411 171 8/4/2025
2025.1216.396 170 8/4/2025
2025.1216.386 173 8/4/2025
2025.1216.357 168 8/4/2025
2025.1216.347 167 8/4/2025
2025.1216.334 172 8/4/2025
2025.1216.319 164 8/4/2025
2025.1215.930 135 8/3/2025
2025.1215.928 137 8/3/2025
2025.1215.911 141 8/3/2025
2025.1215.892 136 8/3/2025
2025.1215.842 137 8/3/2025
2025.1209.1064 136 7/28/2025
2025.1209.1061 129 7/28/2025
2025.1209.1047 134 7/28/2025
2025.1209.1038 139 7/28/2025
2025.1209.1034 135 7/28/2025
2025.1209.948 140 7/28/2025
2025.1209.881 145 7/28/2025
2025.1209.773 153 7/28/2025
2025.1209.765 143 7/28/2025
2025.1209.758 144 7/28/2025
2025.1209.727 148 7/28/2025
2025.1209.658 148 7/28/2025
2025.1209.300 143 7/28/2025
2025.1209.284 146 7/28/2025
2025.1209.264 144 7/28/2025
2025.1209.227 144 7/28/2025
2025.1209.198 140 7/28/2025
2025.1209.179 152 7/28/2025
2025.1208.826 163 7/27/2025
2025.1208.627 123 7/27/2025
2025.1208.617 123 7/27/2025
2025.1208.570 120 7/27/2025
2025.1208.568 131 7/27/2025
2025.1208.566 119 7/27/2025
2025.1206.491 453 7/25/2025
2025.1206.247 483 7/25/2025
2025.1205.230 502 7/24/2025
2025.1203.826 568 7/22/2025
2025.1202.906 519 7/21/2025
2025.1202.904 511 7/21/2025
2025.1202.283 441 7/21/2025
2025.1201.470 265 7/20/2025
2025.1199.287 157 7/18/2025
2025.1198.1048 172 7/17/2025
2025.1198.682 169 7/17/2025
2025.1198.638 172 7/17/2025
2025.1198.574 173 7/17/2025
2025.1198.187 177 7/17/2025
2025.1191.922 179 7/10/2025
2025.1191.235 182 7/10/2025
2025.1190.175 180 7/9/2025
2025.1189.851 183 7/8/2025
2025.1189.841 181 7/8/2025
2025.1187.587 182 7/6/2025
2025.1183.853 177 7/2/2025
2025.1181.644 173 6/30/2025
2025.1175.340 191 6/24/2025
2025.1174.62 177 6/23/2025
2025.1171.352 178 6/20/2025
2025.1169.413 179 6/18/2025
2025.1166.1191 177 6/15/2025
2025.1166.1178 179 6/15/2025
2025.1166.1177 179 6/15/2025
2025.1159.445 158 6/8/2025
2025.1159.364 155 6/8/2025
2025.1159.324 158 6/8/2025
2025.1155.438 182 6/4/2025
2025.1141.1424 187 5/21/2025
2025.1140.383 186 5/20/2025
2025.1140.377 185 5/20/2025
2025.1139.983 187 5/19/2025
2025.1139.952 183 5/19/2025
2025.1139.941 185 5/19/2025
2025.1139.855 184 5/19/2025
2025.1139.850 182 5/19/2025
2025.1139.837 180 5/19/2025
2025.1139.811 178 5/19/2025
2025.1139.806 184 5/19/2025
2025.1139.796 183 5/19/2025
2025.1139.729 184 5/19/2025
2025.1139.719 184 5/19/2025
2025.1139.706 184 5/19/2025
2025.1139.694 184 5/19/2025
2025.1139.679 185 5/19/2025
2025.1139.662 178 5/19/2025
2025.1139.638 161 5/19/2025
2025.1139.628 162 5/19/2025
2025.1139.626 169 5/19/2025
2025.1139.619 166 5/19/2025
2025.1139.605 164 5/19/2025
2025.1139.600 167 5/19/2025
2025.1139.583 166 5/19/2025
2025.1139.573 165 5/19/2025
2025.1139.564 165 5/19/2025
2025.1139.552 167 5/19/2025
2025.1139.543 160 5/19/2025
2025.1138.909 170 5/18/2025
2025.1136.150 241 5/16/2025
2025.1135.267 240 5/15/2025
2025.1135.143 248 5/15/2025
2025.1133.453 250 5/13/2025
2025.1133.351 250 5/13/2025
2025.1133.349 259 5/13/2025
2025.1133.347 251 5/13/2025
2025.1130.236 101 5/10/2025
2025.1129.831 127 5/9/2025
2025.1129.346 1,027 5/9/2025
2023.1176.407 230 6/25/2023
2023.1176.396 192 6/25/2023
2023.1176.363 203 6/25/2023
2023.1176.360 239 6/25/2023
2023.1175.638 198 6/24/2023
2023.1170.907 194 6/19/2023
2023.1170.900 196 6/19/2023
2023.1167.562 199 6/16/2023
2023.1167.556 204 6/16/2023
2023.1167.496 216 6/16/2023
2023.1166.1008 219 6/15/2023
2023.1166.938 191 6/15/2023
2023.1166.713 211 6/15/2023
2023.1166.699 200 6/15/2023
2023.1165.1065 209 6/14/2023
2023.1165.888 205 6/14/2023
2023.1165.878 207 6/14/2023
2023.1165.861 196 6/14/2023
2023.1165.828 206 6/14/2023
2023.1165.686 218 6/14/2023
2023.1165.653 200 6/14/2023
2023.377.1003 291 5/31/2023
2023.377.909 223 5/31/2023
2023.377.558 220 5/31/2023
2023.365.1417 268 5/30/2023
2023.365.1350 208 5/30/2023
2023.365.1327 204 5/30/2023
2023.365.1306 225 5/30/2023
2023.365.1198 232 5/30/2023
2023.365.1046 210 5/30/2023
2023.365.710 209 5/30/2023
2023.365.703 221 5/30/2023
2023.365.336 211 5/30/2023
2023.174.636 208 6/14/2023
2023.174.616 191 6/14/2023
2023.174.442 207 6/14/2023
2023.162.1243 200 6/13/2023
2023.162.1225 208 6/13/2023
2023.162.1023 194 6/13/2023
2023.162.948 199 6/13/2023
2023.162.865 204 6/13/2023
2023.162.770 228 6/13/2023
2023.162.734 217 6/13/2023
2023.162.701 210 6/13/2023
2023.162.470 219 6/13/2023
2023.162.418 203 6/13/2023
2023.150.1142 202 6/12/2023
2023.150.1121 206 6/12/2023
2023.150.1095 207 6/12/2023
2023.150.1081 193 6/12/2023
2023.150.1066 202 6/12/2023
2023.150.999 195 6/12/2023
2023.150.916 221 6/12/2023
2023.150.865 205 6/12/2023
2023.150.831 205 6/12/2023
2023.150.774 204 6/12/2023
2023.150.613 203 6/12/2023
2023.150.558 214 6/12/2023
2023.150.456 226 6/12/2023
2023.150.450 228 6/12/2023
2023.150.220 226 6/12/2023
2023.150.179 231 6/12/2023
2023.150.167 232 6/12/2023
2023.138.864 216 6/11/2023
2023.138.837 211 6/11/2023
2023.138.363 221 6/11/2023
2023.138.224 251 6/11/2023
2023.138.213 195 6/11/2023
2023.126.1167 224 6/11/2023
2023.126.1148 219 6/10/2023
2023.126.838 228 6/10/2023
2023.126.794 223 6/10/2023
2023.126.745 223 6/10/2023
2023.126.714 235 6/10/2023
2023.126.662 232 6/10/2023
2023.114.544 208 6/9/2023
2023.114.351 218 6/9/2023
2023.90.1030 222 6/7/2023
2023.90.1009 204 6/7/2023
2023.54.1152 205 6/4/2023
2023.54.419 227 6/4/2023
2023.54.198 207 6/4/2023
2023.54.60 190 6/4/2023
2023.54.48 222 6/4/2023
2023.42.745 208 6/3/2023
2023.30.1191 208 6/2/2023
2023.30.1172 220 6/2/2023
2023.30.1163 214 6/2/2023
2023.30.1147 218 6/2/2023
2023.30.1136 235 6/2/2023
2023.30.765 229 6/2/2023
2023.30.761 216 6/2/2023
2023.30.747 230 6/2/2023
2023.30.734 217 6/2/2023