Задать вопрос
  • Как сделать постоянный фоновый Process в C#?

    Дмитрий Беляев,
    "P.S. я еще обычно рекомендую избавляться от try-catch, ибо это путь в сторону неподдерживаемого хаоса..."

    Не нужно от них избавляться. Если это нажатие на кнопку, там ему самое место, просто нужно или залогировать информацию об ошибке, или вывести информацию на экран (или всё вместе). Если бы он в классе с алгоритмом подавлял ошибки, то да, это было бы не то что неподдерживающийся хаос, это просто был бы нерабочий код, который нельзя так писать. Проще говоря, если не будет трай кэтча в методе нажатия на кнопку, то приложение будет просто крашиться. Мы же можем приложение не крашить, а просто завершить выполнение работы не получив результат. В таком случае, имея логи, можно разобраться в проблеме. Бывают ошибки, не связанные с алгоритмом, например, антивирус заблокировал файл, не удалось его открыть и прочитать. У меня такое было.
  • С# Taks и Invoke почему то блокируется форма?

    Pantuchi, вообще задержка обновления UI в данном случае - это правильно, так как писать в UI каждую итерацию цикла не имеет никакого смысла (пользователь вряд ли увидит, что меняется даже каждую миллисекунду), только будет подвешивать UI. Другое дело, что код нужно реализовать по-другому.
  • С# Taks и Invoke почему то блокируется форма?

    Pantuchi, интересует почему тебе на каждый клик нужно запускать Task, который одновременно с другими Task(ами) пишет что-то в UI? Ведь то, что они пишут конфликтует между собой.
  • С# Taks и Invoke почему то блокируется форма?

    Pantuchi, немного не в тему, но такое

    Stopwatch time = new Stopwatch();
    time.Start();

    Можно заменить на такое
    var time = Stopwatch.StartNew();

    ------------------
    Task можно запускать сразу
    private Task NetworkEfficiency()
    {
        return Task.Run(() => { /* Код*/ });
    }
  • С# Taks и Invoke почему то блокируется форма?

    Pantuchi, оберни код в теги. Только не этот, а снова из проекта скопируй. Из этого кода, по-моему, удалились некоторые символы, такие как угловые скобки и он стал нерабочим. А лучше скинь весь проект, если это не какой-то там огромный важный проект, который нельзя выкладывать. А я пока гляну код так, с ошибками в синтаксисе.

    И где код клика? Покажи его тоже, как ты там что запускаешь.
  • Как в DataGrid задать оформление определенному полю?

    В моём ответе ставь галочку, и ты увидишь, как в зависимости от изменённого свойства вью модели перекрашивается ячейка, вот по такому принципу это и делается. Меняешь свойство вью модели, а UI реагирует на это так, как ты напишешь.
  • Как в DataGrid задать оформление определенному полю?

    App.xaml
    <Application
        x:Class="WpfDataGrid.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:converters="clr-namespace:WpfDataGrid.Converters"
        StartupUri="Views/MainWindow.xaml">
        <Application.Resources>
            <converters:BooleanToBrushConverter x:Key="BooleanToBrushConverter" />
        </Application.Resources>
    </Application>


    Views/MainWindow.xaml.cs
    using System.Collections.ObjectModel;
    using System.Windows;
    using WpfDataGrid.ViewModels;
    
    namespace WpfDataGrid.Views
    {
        public partial class MainWindow : Window
        {
            public ObservableCollection<ItemViewModel> Collection { get; }
    
            public MainWindow()
            {
                Collection = new ObservableCollection<ItemViewModel>();
                for (int i = 0; i < 10; i++)
                {
                    Collection.Add(new ItemViewModel((i + 1).ToString()));
                }
    
                InitializeComponent();
            }
    
            private void OnDeleteButtonClick(object sender, RoutedEventArgs e)
            {
                for (int i = 0; i < Collection.Count; i++)
                {
                    if (Collection[i].IsChecked)
                    {
                        Collection.RemoveAt(i);
                        --i;
                    }
                }
            }
        }
    }


    ViewModels/ItemViewModel.cs
    using GalaSoft.MvvmLight;
    
    namespace WpfDataGrid.ViewModels
    {
        public class ItemViewModel : ViewModelBase
        {
            private bool _isChecked;
            private string _title;
    
            public bool IsChecked
            {
                get { return _isChecked; }
                set { Set(ref _isChecked, value); }
            }
    
            public string Title
            {
                get { return _title; }
                set { Set(ref _title, value); }
            }
    
            public ItemViewModel(string title)
            {
                _title = title;
            }
        }
    }


    Converters/BooleanToBrushConverter.cs
    using System;
    using System.Globalization;
    using System.Windows.Data;
    using System.Windows.Media;
    
    namespace WpfDataGrid.Converters
    {
        [ValueConversion(typeof(bool), typeof(SolidColorBrush))]
        public class BooleanToBrushConverter : IValueConverter
        {
            public SolidColorBrush TrueBrush { get; set; } = new SolidColorBrush(Colors.Tomato);
    
            public SolidColorBrush FalseBrush { get; set; } = new SolidColorBrush(Colors.CornflowerBlue);
    
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return (bool)value ? TrueBrush : FalseBrush;
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return Binding.DoNothing;
            }
        }
    }
  • Как вставить векторное изображение в WPF окно?

    Иконка в ответе взята отсюда (хотя важно ли это вообще?).
  • Как отправить запрос на сервер, нажав на кнопку?

    Дай знать, если тебе нужен пример на ASP.NET Core, могу набросать, а то вдруг тебе не нужно, не хочу тратить время зря. И укажи, какой UI Framework ты хотел бы использовать.
  • Как отправить запрос на сервер, нажав на кнопку?

    Этот урок займёт кучу времени, чтобы показать как. Если показывать как делать в ASP.NET Core. Но за то это будет самый толковый пример, так как потом можно расширять функционал не переписывая все свои велосипеды. Про какую форму речь? Про Windows Forms проект или WPF? В общем, нужно в UI использовать асинхронным методы, чтобы не зависал UI и async await -- это самый современный вариант (не BackgroundWorker, не Thread, и даже не ThreadPool).

    Есть книги
    ASP.NET Core MVC 2 с примерами на C# для профессионалов | Фримен Адам
    Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование | Клири Стивен
    Основы Windows Presentation Foundation | Андерсон Крис
    WPF. Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов | Мак-Дональд М. (новее не нашёл на русском языке, да и вряд ли новее нужна)
  • ToastNotifications изменить целевое окно?

    Notifier notifier = new Notifier(cfg =>
            {
                cfg.PositionProvider = new WindowPositionProvider(
                    parentWindow: ССЫЛКА_НА_ДРУГОЕ_ОКНО,
                    corner: Corner.TopRight,
                    offsetX: 10,
                    offsetY: 10);
    
                cfg.LifetimeSupervisor = new TimeAndCountBasedLifetimeSupervisor(
                    notificationLifetime: TimeSpan.FromSeconds(3),
                    maximumNotificationCount: MaximumNotificationCount.FromCount(5));
    
                cfg.Dispatcher = Application.Current.Dispatcher;
            });


    То есть нужно передать ссылку на нужное окно. Чтобы можно было её передать, у тебя должна быть ссылка на это другое окно. Как ты там окна открываешь я не знаю. Куда ты вставил этот кусок кода тоже не знаю.
  • C# или Python под Linux и Windows?

    Александр Ананьев, да забудьте про Mono, есть .NET Core и AvaloniaUI. При том, .NET Core и без UI вполне сойдёт для других задач Я в курсе про WPF.
  • В каком направлении нынче двигаться начинающему C#-разработчику?

    Я работал на одной работе, где требовался WPF. Я там написал проект на этой технологии.

    На другой работе уже были написаны до меня серверы, написаны ужасно. Это были обычные консольные приложения с сокетами + MS SQL Server, которые запускались как службы. Потом всё это дело переписали под Mono (странный выбор, когда уже был .NET Core).

    На ещё одной работе я пишу на C# + UWP. Совсем немного было ASP.NET Core 3.1 MVC (без вьюх).

    Как-то у меня был заказ, где я использовал ASP.NET Core MVC + React JS.

    В общем, требуется много чего. Разные варианты есть. Зайди на хэдхантер да посмотри, что требуется в вакансиях. Вот сейчас в ЦУМ требуется Ведущий WPF программист. Зарплата высокая. Это пример, что требуется всё, что угодно.
  • В каком направлении нынче двигаться начинающему C#-разработчику?

    Зачем тебе нужен фриланс? Езжай в большой город. Найди работу удалённо через любую биржу. Пройди собеседование онлайн и езжай. Я так и сделал. Ну или устройся удалённо, скажи, что готов первые 3 месяца испытательного срока работать за одни деньги, а после него за нормальные, если прям совсем не будут хотеть никуда брать. Если шаришь, то возьмут. Главное пройти собеседование, а для этого ты должен знать C# и много тонкостей, которые написаны в книгах по C#. Без книг вряд ли нормально собеседование пройдёшь. Я их легко проходил потому что читал книги по C# и знал всё, что меня спрашивали. Меня сразу же соглашались брать.
  • С# Taks и Invoke почему то блокируется форма?

    Pantuchi, звучит как костыль. Покажи код. Решим проблему, если он читаемый :)
  • C# или Python под Linux и Windows?

    Александр Ананьев, "если UI не сложный, можно C# использовать".
    Серьёзно? Какую сложность не осилит C# + WPF или AvaloniaUI? Что именно не получится сделать?

    Кстати, я не против Python и Qt, и языки С++ и Python мне интересны и Qt тоже. Даже чуток учил эти дела.
  • C# или Python под Linux и Windows?

    .NET Framework или .NET Core в Windows 10 даже если не идёт из коробки, то винда сама предлагает его установить при первом запуске приложения.
  • C# или Python под Linux и Windows?

    Зачем Mono, если есть гораздо более быстрый и современный .NET Core? Да ещё и не сторонний продукт, а от Майкрософт. И он тоже Open Source.