Re: problem z karta wieloportowa

Autor: lux <mark_at_poczta.onet.pl>
Data: Tue 14 Oct 2008 - 14:18:43 MET DST
Message-ID: <gd22n3$9tr$1@news.onet.pl>
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=response

"Piotr Rezmer" <piotr.rezmer@WYWAL.ens.net.pl> wrote in message
news:gd1plb$80c$1@news.onet.pl...
> lux pisze:
>> tak, ta petla to oddzielny watek a wyglada on mniej wiecej tak:
>> while (isRunning)
>> {
>> try
>> {
>> lock (serialPort)
>> {
>> if (serialPort.IsOpen)
>> {
>> str = serialPort.ReadLine();
>> }
>> }
>> IReceiver rec = recObj as IReceiver;
>> if (rec != null)
>> {
>> rec.Receive(str);
>> }
>> }
>> catch (TimeoutException)
>> {
>>
>> }
>> }
> Czy któraś z funkcji readline(), receive() jest blokująca jeśli brak
> danych? Jeśli nie, wątek zasuwa bez przerwy w pętli i dlatego zżera całe
> CPU. Najprościej wstawić w pętlę Thread.Sleep(50) i obciążenie powinno
> spaść.

readline to funkcja biblioteczna, czytajÄ…ca liniÄ™ z portu wiec moj watek nie
zasuwa cały czas w patli tylko czeka az na porcie pojawi sie rezultat,
receive to funkcja malujaca punkty wiec troche czasochlonna.
Wolalbym nie robic Sleep'a bo zalezy mi na tym by namalowac punkt w czasie
rzeczywistym
Received on Tue Oct 14 14:20:04 2008

To archiwum zosta³o wygenerowane przez hypermail 2.1.8 : Tue 14 Oct 2008 - 14:51:01 MET DST