Чӣ гуна дастгирии иҷрои параллелии сӯрохиҳо дар C# амалӣ карда мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар C# дастгирии иҷрои параллелиии сӯрохҳо тавассути чанд механизм амалӣ мешавад:
-
Класи Thread аз фазои номҳои
System.Threading— имкон медиҳад, ки сӯрохҳоро дастӣ эҷод ва идора кардан мумкин аст. -
Pool-и сӯрохҳо (ThreadPool) — маҷмӯи оптимизатсияшудаи сӯрохҳо, ки барои иҷрои вазифаҳо такрор ба такрор истифода мешаванд, ки хароҷоти эҷоди сӯрохҳои навро кам мекунад.
-
Китобхонаи вазифаҳои параллелӣ (TPL) — API-и сатҳи баланд барои барномасозии параллелӣ, ки дар асоси класи
Taskаст. Онро барои оғоз кардани амалиётҳои асинхронӣ ва параллелӣ ба осонӣ истифода бурдан мумкин аст. -
async/await — синтаксиси барномасозии асинхронӣ, ки навиштани коди параллелиро содда мекунад.
Масалан барои истифодаи TPL барои оғоз кардани вазифаҳо дар параллел:
using System.Threading.Tasks;
Task task1 = Task.Run(() => {
// коди, ки дар сӯрохи алоҳида иҷро мешавад
});
Task task2 = Task.Run(() => {
// коди дигар
});
Task.WaitAll(task1, task2); // интизор шудан барои анҷоми вазифаҳо
Бинобар ин, C# воситаҳои қавӣ ва чандир барои иҷрои параллелии сӯрохҳо ва вазифаҳоро пешниҳод мекунад.