Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 33934. Ответов 523
Метки нет (Все метки)

С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 11:26
Etyuhibosecyu, ты, как создатель языка, очень неохотно отвечаешь на вопросы

ListHashSet<T> (NStar.Core) - коллекция, в которой можно получать по индексу, устанавливать по индексу, добавлять, вставлять и удалять элементы, как в списке, но элементы не повторяются и можно проверить существование элемента за Õ(1), как в хэш-множестве (удаление занимает O(n), множество элементов можно удалить также за O(n) методом FilterInPlace()).
повторю вопрос -зачем? какую задачу решает эта коллекция, которую не решить списком и/или сетом? какие минусы, если я захочу использовать? Она медленнее сета, насколько? Она больше памяти жрет чем сет, насколько?

Почему удаление занимает так долго, разве мы не найдем элемент за О(1)? у тебя внутри под капотом лежит список и сет? потому так быстро ищет, но так долго удаляет?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 11:36  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Она медленнее сета, насколько?
Все, кроме удаления, такое же быстрое.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Она больше памяти жрет чем сет, насколько?
Наоборот, на несколько байт меньше, за счет отсутствия freeList и freeCount.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Почему удаление занимает так долго, разве мы не найдем элемент за О(1)?
Найдем за Õ(1), а вот удаление сдвигает все элементы справа от удаляемого влево, как в списке. Это дает гарантированно правильную индексацию с минимальными затратами времени на поиск и добавление и памяти. А удаление из хэш-множества - крайне редкая операция, мне, например, нужна была один или два раза, хотя я даже немного касался темы Big Data (в компрессоре).
Вопросы в стиле "зачем" игнорируются как бессмысленные.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 11:40
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Вопросы в стиле "зачем" игнорируются как бессмысленные.
ты объявляешь новую структуру данных, которой нет в других ЯП (как минимум в стандарте) и запрещаешь интересоваться зачем она? я ни разу при работе с сетом не ощущал необходимости иметь его упорядоченным. Потому и спрашиваю -зачем? сеты нужны для уникальности, проверки вхождения и операций над сетами типа пересечения (кстати эти операции поддерживаются?). Мне стало любопытно какую проблему решает новая структура. Но раз бессмысленно -то ладно.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Все, кроме удаления, такое же быстрое.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Наоборот, на несколько байт меньше
как именно ты это проверял? есть в ЯП инструменты измерения памяти или скорости?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 11:46  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
сеты нужны для уникальности, проверки вхождения и операций над сетами типа пересечения (кстати эти операции поддерживаются?)
Все эти операции поддерживаются.
Цитата Сообщение от Welemir1 Посмотреть сообщение
как именно ты это проверял? есть в ЯП инструменты измерения памяти или скорости?
По идентичности структуры данных во всем, кроме индексации и удаления.
Welemir1, не хотите протестировать, что в новой версии не работает? Вы раньше это делали. Я даже DeepSeek дергал для обнаружения простых ошибок. Но сложные, неочевидные ошибки может обнаружить только человек.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 11:54
так я не могу, я не знаю зачем нужна структура данных, а значит не могу ее верно протестировать. Нужно же воспроизвести проблему и решение

Добавлено через 2 минуты
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
По идентичности структуры данных во всем, кроме индексации и удаления.
вот это мягко говоря неумный ответ. Логика отличается? -да, отличается. Ты как то замерял скорость и потребление памяти -получается что нет.
Как ты можешь утверждать что памяти даже меньше, а скорость такая же? Подпись мою прочти, потому что твой пассаж противоречит твоей подписи
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 11:59  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
так я не могу, я не знаю зачем нужна структура данных, а значит не могу ее верно протестировать. Нужно же воспроизвести проблему и решение
Чтобы протестировать коллекцию, не нужно погружаться в философию. Достаточно создать эту коллекцию и вызывать разные методы с разными параметрами. И речь шла о тестировании инкапсуляции и наследования, а не конкретно ListHashSet.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 12:06  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Ты как то замерял скорость и потребление памяти -получается что нет.
Замерил, получил почему-то вот такую картину:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[MemoryDiagnoser]
public class Benchmark
{
    private static readonly Random random = new(1234567890);
    private static readonly NList<int> list8 = RedStarLinq.NFill(x => random.Next(0, 65536), 100000000);
 
    public G.HashSet<int> GHashSet { get; set; } = [];
    public ListHashSet<int> ListHashSet { get; set; } = [];
 
    [Benchmark]
    public void GHashSetTest() => GHashSet = new(list8);
 
    [Benchmark]
    public void ListHashSetTest() => ListHashSet = new(list8);
}
Не знаю, что я там не так аллоцирую, может, где-то ошибка в коде бенчмарка, но и код, и результат перед вами.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 12:08
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Чтобы протестировать коллекцию, не нужно погружаться в философию.
так и я о том же! я даже на этом настаиваю, причем еще со времени разговора о мифических булинах размером в 1 бит. Ты должен измерять, брать некий инструмент в руки и с его данными показывать - вот. Вот замеры скоростей для такой то работы. Вот память для таких то данных. Это уже показатель, а не твои теоретические рассуждения.

А что в мире Net не существует инструментов для бенчмарка и профилирования? что тебя останавливает? Usaga я думаю может подсказать

ведь с этим ты получаешь фактуру на руки. Например: сделал какие то оптимизации -как их доказать? вот измерил и показал: на прошлой версии столько по времени, теперь столько, ускорение столько %. Что непонятно в этом подходе?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 12:09  [ТС]
Поменял местами тесты, аналогично:
Миниатюры
C#.NStar  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 12:11
во, а говорил измерять не умеет. Как минимум по времени явно какие то разницы, с аллокацией тоже какая то фигня, разница в 1000 раз. Тебя это не удивляет? не понуждает покопать?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 12:14  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
во, а говорил измерять не умеет.
Можно ссылку, где я такое говорил? Разумеется, уею, просто на это нужно время и труд, а я либо сильно занят, так что времени нет, либо энергии нет, но тогда ее нет и на бенчмарки.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 12:40  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
причем еще со времени разговора о мифических булинах размером в 1 бит.
Они не мифические. К сожалению, BenchmarkDotNet врет относительно нативной памяти (а BitList - это нативная память), но вот:


Несколько "лишних" гигабайт вполне можно списать на среду и прочие накладные расходы. А так - 1000 списков бит по 10^9 элементов занимают примерно 10^12 бит.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 13:13  [ТС]
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А так - 1000 списков бит по 10^9 элементов занимают примерно 10^12 бит.
С точностью до трех значащих цифр bool занимает больше, чем 1 бит, на 10.2%.
0
Эксперт .NET
 Аватар для Usaga
14352 / 9455 / 1360
Регистрация: 21.01.2016
Сообщений: 35,644
25.06.2025, 14:09
Цитата Сообщение от Welemir1 Посмотреть сообщение
А что в мире Net не существует инструментов для бенчмарка и профилирования? что тебя останавливает? Usaga я думаю может подсказать
Да я уже подсказывал. И вместе с ним профилированием занимался. Ещё годы назад. Толку это не дало.
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 15:22  [ТС]
Билд второй. Исправлена ошибка, из-за которой если применить операторы + - * / % pow или унарные к некорректному типу переменной (типам переменных), вместо корректного сообщения об ошибке выдавалось "A serious error occurred during compilation, translation or execution; program has not been executed".
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 18:51
не судьба, при открытии окно зависает, указатель мыши какой то понтовый но прилипает к рисунку, окно не перемещается, в диспетчере видно что чего-то происходит.
если что у меня 10 ядер, 32 оперативы

0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 18:54  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
указатель мыши какой то понтовый но прилипает к рисунку
Это просто картинка, настоящий указатель на месте.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 18:59
ну нажать ничего нельзя, крутится вейтер, ничего не просиходит. Если куда то пишутся логи, могу тебе кинуть
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,812
Записей в блоге: 14
25.06.2025, 19:45  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
ну нажать ничего нельзя, крутится вейтер, ничего не просиходит.
У меня почему-то все запускается. А сколько времени крутится этот "вейтер"? Несколько секунд, или уже несколько минут? Если первое, то это нормально, он несколько секунд крутится.

Добавлено через 1 минуту
Welemir1, и Интернет на устройстве, где запускается автоустановщик, в момент запуска не отключается? Ему нужно проверить обновления.

Добавлено через 40 минут
Welemir1, думал, что вы скачали, а оказывается, это я сам скачал C#.NStar, проверяя. У вас что-то опять не получается, или вы плюнули?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,696
Записей в блоге: 29
25.06.2025, 19:49
сейчас мне некогда, завтра дам ровно 5 минут запуститься, если нет - то и суда нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru