Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/baro-coder/gas-station-simulator_concurrent-app

Concurrent App - multithreading project in C# - WinForm
https://github.com/baro-coder/gas-station-simulator_concurrent-app

csharp multithreading winforms

Last synced: 1 day ago
JSON representation

Concurrent App - multithreading project in C# - WinForm

Awesome Lists containing this project

README

        

# Gas-Station-Simulator_Concurrent-App

# Projekt
## Geneza[^gen]
Projekt powstał w ramach ćwiczeń laboratoryjnych z przedmiotu **Programowanie współbieżne** realizowanych w trakcie pobierania nauki na Wydziale Cybernetyki
w Wojskowej Akademii Technicznej.

## Opis[^desc]
Program napisany w języku **C#** przy wykorzystaniu framework'u **Windows Forms**.

Aplikacja stanowi hipotetyczną symulację stacji paliw, również w kontekście wątkowym, tzn.
wątki sekwencyjne symulują klientów w oczekiwaniu na zwolnienie zasobów dzielonych, jakimi są
miejsca przy dystrybutorach, kasy płatnicze oraz miejsca oczekiwania na wolny dystrybutor.

___

## Interfejs[^ui]


Okno aplikacji

___

### Klienci
Odzwierciedleniem klientów w interfejsie są nadjeżdżające samochody w odpowiednim kolorze,
z czego każdy coś oznacza:

#### czerwony
> Samochód oczekuje na zatankowanie

#### żółty
> Samochód zatankowany, czeka w kolejce do zapłaty

#### zielony
> Samochód zatankowany, rozliczony, wyjeżdża ze stacji

### Panel sterowania
#### Przyciski
Panel zawiera dwa przyciski:
- **START** - rozpoczyna symulację,
- **RESET** - po zakończonej symulacji przygotowuje program do kolejnej symulacji.

#### Scrollbar
Dostępny jest również **scrollbar**, umożliwiający dobór ilości procesów sekwecyjnych
(klientów) do wywołania w przedziale <1, 80>.

#### Czas symulacji
Użytkownik ma również dostęp do wglądu w **czas symulacji** liczony od kliknięcia przycisku
**START** do zakończenia działania wszystkich utworzonych procesów sekwencyjnych.

#### Pasek postępu
**Pasek postępu** informuje graficznie użytkownika o ilości pozostałych wątków, których
liczba jest wyświetlana powyżej **czasu symulacji**.

___

[^gen]: Geneza
[^desc]: Opis
[^ui]: Interfejs