Sobes.tech
Junior — Middle

El tudná mesélni a legérdekesebb vagy legnehezebb feladatról, amit a gyakorlat során meg kellett oldania?

sobes.tech MI

Válasz az MI-től

Az egyik legnehezebb feladat, amivel szembesültem, a C#-ban írt több szálú alkalmazás teljesítményének optimalizálása volt.

A feladat az volt, hogy biztosítsam több szál helyes működését, amelyek egy közös sorból dolgoznak, miközben elkerüljük a versenyhelyzeteket és a blokkolásokat, amelyek lassították a működést.

Ehhez a következőket használtam:

  • A System.Collections.Concurrent névtérből a ConcurrentQueue<T> osztályt a szálbiztos hozzáféréshez a sorhoz.
  • A CancellationToken mechanizmust a szálak helyes befejezéséhez.
  • Aszinkron módszereket és Task-okat a terhelés hatékony elosztásához.

Ez jelentősen növelte az alkalmazás teljesítményét és stabilitását.

Példa a ConcurrentQueue használatára:

var queue = new ConcurrentQueue<int>();
queue.Enqueue(1);
if (queue.TryDequeue(out int result)) {
    Console.WriteLine(result);
}