0 / 0 / 0
Регистрация: 15.12.2020
Сообщений: 5
1

Синхронизация

16.12.2020, 20:01. Показов 1462. Ответов 1

Я нуб в c#, нужна помощь. Очень срочно нужно сдать до 17 декабря!!!
Разработать программу, которая водит два числа, считает их сумму, разность, произведение, и частное. Каждая из указанных операций организована как отдельный поток. Первый поток после ввода чисел, выдает остальным информацию, что он ввел новые числа с помощью семафора. Остальные три потока ждут информацию от первого. Все эти значения выводятся на экран.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2020, 20:01
Ответы с готовыми решениями:

Синхронизация процессов
Добрый день! Прошу помощи в следующем вопросе: Есть некое консольное приложение на C#, которое...

Синхронизация потоков
Решил попробовать перейти от работы приложения по таймеру к применению потоков - почитал...

Синхронизация потоков c#
Всем привет) Решил написать программу, которая в несколько потоков будет выкачивать торрент файлы...

Синхронизация потоков
Привет. Проблема: рандомные потоки возвращают одинаковые значения, хотя синхронизацию сделал. ...

1
Злой няш
2133 / 1502 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
17.12.2020, 15:44 2
Лучший ответ Сообщение было отмечено Rusto как решение

Решение

C#
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
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
 
using static System.Console;
 
Action[] actions = {
    () => WriteLine(double.Parse(ReadLine()) + double.Parse(ReadLine())),
    () => WriteLine(double.Parse(ReadLine()) - double.Parse(ReadLine())),
    () => WriteLine(double.Parse(ReadLine()) * double.Parse(ReadLine())),
    () => WriteLine(double.Parse(ReadLine()) / double.Parse(ReadLine())),
};
 
var semaphore = new SemaphoreSlim(1);
List<Task> tasks = new();
foreach (Action action in actions)
{
    tasks.Add(Task.Run(() =>
    {
        semaphore.Wait();
        action();
        semaphore.Release();
    }));
}
 
Task.WaitAll(tasks.ToArray());
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2020, 15:44
Помогаю со студенческими работами здесь

Синхронизация потоков
Не так давно начал заниматься c#.. возникла следующее недопонимание потоков. Программа ищет в цикле...

Синхронизация потоков
Здравствуйте! Я понимаю, что подобные вопросы уже много раз задавались, но перечитав подобные темы...

Синхронизация потоков
Есть программа: using System; using System.Diagnostics; using System.Linq; using...

Синхронизация потоков с#
Здравствуйте. Задача у меня такая: нужно, чтобы три потока асинхронно брали из List слова и...

Синхронизация DateTime
Приветствую! Задача следующая: Клиентская программа находиться в Москве, а сервер в NY. 1....

Синхронизация потоков
Есть ли возможность в C# сделать часть кода потока защищенным от прерывания другими потоками. Lock...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru