Hirdetés
Új hozzászólás Aktív témák
-
dqdb
nagyúr
válasz t-shirt #8662 üzenetére
Ez esetben elég ennyi módosítás, és nem fogja a CPU-t tekerni feleslegesen:
using (var port = new SerialPort("COM" + cp))
{
port.BaudRate = 9600;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.DataBits = 8;
port.Handshake = Handshake.None;
port.RtsEnable = true;
port.DataReceived += Port_DataReceived;
port.Open();
while (fo_tomb_index <= (fo_tomb_merete-1))
{
receivedNewRequest.WaitOne();
var s = port.ReadExisting();
WriteData(port, fo_tomb[fo_tomb_index]);
Console.WriteLine(fo_tomb[fo_tomb_index]);
fo_tomb_index++;
}
}
}
private static WaitHandle receivedNewRequest = new AutoResetEvent(false);
private static void WriteData(SerialPort port, string readLine)
{
port.WriteLine(readLine);
}
private static void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
receivedNewRequest.Set();
}joysefke: a kódodnál nem azért nem fogja feleslegesen terhelni a CPU-t, mert áttetted a futását egy másik szálra, hanem azért nem, mert a példádban a SerialPort.ReadLine hívást használod, ami ReadTimeout időt vár, mielőtt visszatérne, ha nincsen adat, és közben értelmes módon várakozik.
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- PC RTX 4070 Super , Ryzen 5 7600x AM5 , 3 hónapos használat
- G15 5530/Core i7-13650HX/32GB/1TB SSD/15.6" FHD 360Hz/GeForce RTX 4060/Ubuntu/Garis
- Új Blueendless 2 lemezes RAID ház, Foxpost az árban
- BONTATLAN! WD Western Digital My Passport 2TB USB 3.2 Black (WDBYVG0020BBK)
- 15 hüvelykes MacBook Air M3 chip 8 magos CPU-val, 10 magos GPU-val, 256 GB Midnight
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest