
Multithread aplikace a zadávání příkazů
Mám několik threadů v konzolové aplikaci. Jeden hlavní thread slouží pro zadávání příkazů. Používám std::getline(std::cin, str); Další thready provádí různé operace a občas potřebují, aby zapsali nějaký výstup (normálně přes std:cin..). Je to vždy nějaký text zakončený novým řádkem. Jenže když jsem v půlce zadávání příkazu, tak to "rozpůlí" ten příkaz a vypadá to blbě. Lepší bude nějaký příklad na pochopení jak to vypadá.
text z nejakeho threadu
text z nejakeho threadu
ted_pisu_pr<text z nejakho threadu>
ikaz
Představoval bych si to, že když se má vložit nějaký text, tak ten příkaz co píšu to hodí vždy na konec. Jenže nevím jak na to :(
obecně: udělej si další thread pro výstup, prostě do něj chronologicky "sáčkuj" výstup a buď jej zobrazuj v novém okně, nebo si napiš rutinu, která bude "hlídat" vstup a do okamžiku kdy jej nevložíš nedojde ker spuštění výpisu. Nebo druhá varianta - vstup vlož do bufferu, smaž, přepiš výstupem a na nový řádek vlož znova.
Asi zkusím udělat tu druhou variantu, protože potřebuju vypisovat ten výstup v reálném čase a nechci čekat, než dopíšu příkaz. Dík za nápady..