Re: problem z karta wieloportowa

Autor: lux <mark_at_poczta.onet.pl>
Data: Tue 14 Oct 2008 - 08:34:50 MET DST
Message-ID: <gd1eia$v8o$1@news.onet.pl>
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original

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)
                {

                }
            }

Na początku jeszcze wołam (nie wiem czy potrzebnie):
    Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;
bo sześć tych wątków (karta ma 6 portów) znacząco zabiera czas procka. Jest
na to jakaś rada?
IReceiver odbiera rezultat i maluje go na wykresie. Byc moze to własnie jest
przyczyną bo to malowanie to zrobienie punktu i odmalowanie kawalka ekreanu.

"Maciek" <maciek@nospam.pl> wrote in message
news:gcvdbb$a8b$1@nemesis.news.neostrada.pl...
> lux pisze:
>> Z grubsza algorytm jest nastepujacy:
>> 1. Wyslanie znaku rozpoczecia odczytywania
>> 2. Odebranie znaku potwierdzenia rozpoczecia wysylania danych
>> 3. W petli czytanie danych z portu
>> 4. Wyslanie znaku zakonczenia.
> Czy ta pętla działa w jakimś oddzielnym wątku, dajesz jakieś przerwy
> miedzy kolejnymi wywołaniami pętli? Jaki czas procesora zabiera Twój
> program?
>
> --
> Pozdrawiam
> Maciek
Received on Tue Oct 14 08:35:04 2008

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