Kezdőoldal » Számítástechnika » Programozás » Egy gomb lenyomásával miért...

Egy gomb lenyomásával miért fagy le a program?

Figyelt kérdés

Készítettem C#-ban egy programot, és ha a felhasználó lenyom egy gombot, az alábbiakat hajtja végre:


TcpListener listener = new TcpListener(IPAddress.Any, int.Parse(ServerPorttextBox.Text));

listener.Start();

client = listener.AcceptTcpClient();

STR = new StreamReader(client.GetStream());

STW = new StreamWriter(client.GetStream());

STW.AutoFlush = true;

backgroundWorker1.RunWorkerAsync();

backgroundWorker2.WorkerSupportsCancellation = true;


Valakinek esetleg van ötlete, hogy miért fagy le? És mi lehetne erre a megoldás?



2019. dec. 10. 10:56
 1/2 anonim ***** válasza:
100%

Mert az AcceptTcpClient() blokkol, amíg nem csatlakozik egy kliens.

Aszinkron indítsd a várakozást, vagy ne a fő szálon.

2019. dec. 10. 12:27
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
63%
Async lesz a megoldás, ahogy az #1-es is mondta. Ha szinkronos függvényeket használsz, akkor azok blokkolni fogják a UI-t, amíg nem fejeződik be a végrehajtásuk.
2019. dec. 10. 12:34
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!