mcr.microsoft.com/dotnet/nightly/runtime:6.0.0-rc.2-alpine3.14-arm64v8
2. Не избыточна ли тут ConcurrentQueue?
3. Как сообщить основному потоку из Task.run() что все готово к обновлению карт? Я понимаю что есть Task.Result, но если Task выполняется постоянно (while true), смогу ли я это использовать?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<!-- Вот это самое главное -->
<PublishSingleFile>true</PublishSingleFile>
<!-- Это чтобы тащить за собой рантайм До .NET 6 будут рядом лежать нативные библиотеки jit-а и сборщика мусора-->
<SelfContained>true</SelfContained>
<!-- Это необходимо, чтобы сборщик понимал, для какой ОС нужен экзешник -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<!-- Это чтобы ускорить запуск -->
<PublishReadyToRun>true</PublishReadyToRun>
<!-- Эти две строки, чтобы уменьшить размер бинарника -->
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>link</TrimMode>
</PropertyGroup>
</Project>
без доп. библиотек и массива битмапов
Возвращаемый тип будет зависеть от того, что придёт в ответе от АПИ (несколько вариантов типов, которые будут явно указаны в самом методе).
В основном этот интерфейс используется для высвобождения неуправляемых ресурсов. Сборщик мусора автоматически освобождает память, выделенную управляемому объекту, если этот объект больше не используется. Однако невозможно предсказать, когда произойдет сборка мусора. Более того, сборщик мусора не имеет сведений о неуправляемых ресурсах, таких как дескрипторы окон, или открытых файлах и потоках.
Используйте Dispose метод этого интерфейса для явного освобождения неуправляемых ресурсов в сочетании с сборщиком мусора. Потребитель объекта может вызвать этот метод, если объект больше не нужен.
Есть ли смысл изучать его ради маленьких в пару страниц сайтов (но всё же серверным функционалом, не просто "отдать html по ссылке")?
Какие у него есть киллер-фичи, облегчающие жизнь?
я слегка пересрался от вида "пустого проекта asp net" в visual studio.
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
Host.CreateDefaultBuilder(args)
.ConfigureWebHost(webBuilder =>
{
webBuilder.UseKestrel(o =>
{
o.ListenLocalhost(5000);
});
webBuilder.ConfigureServices(services =>
{
services.AddRouting();
});
webBuilder.Configure(app =>
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
});
})
.Build()
.Run();
var app = WebApplication.Create(args);
app.MapGet("/", string () => "Hello World!");
app.Run();
На одном форуме подсказали что дело в разрядности приложения.
Когда указываю относительный путь выходит исключение.
Process.Start("https://www.google.com");
И к великому разочарованию не обнаружил там своего дотнета