Junior — Middle
Чӣ гуна фарқ кардани кор бо сими Thread аз истифодаи вазифаҳои Task дар контексти бисёрсана?
sobes.tech AI
Ҷавоб аз AI
Дар C# Thread ва Task барои ташкил кардани кори параллелӣ хизмат мекунанд, аммо дар сатҳи абстраксия ва истифода фарқ мекунанд:
-
Thread — объекти пастсохт, ки як сари ОС-ро намояндагӣ мекунад. Идоракунии сариҳо талаб мекунад назорати дастӣ: эҷод кардан, оғоз кардан, ҳамоҳангсозӣ.
-
Task — абстраксияи баландсохт, ки як амалиёти асинхронӣ мебошад, ки метавонад дар пули сариҳо иҷро шавад.
Taskкор бо асинхронӣ ва параллелизмро содда мекунад ва боasync/awaitҳамгиро мешавад.
Масалан:
// Истифодаи Thread
Thread thread = new Thread(() => Console.WriteLine("Сари Thread"));
thread.Start();
// Истифодаи Task
Task task = Task.Run(() => Console.WriteLine("Вазифаи Task"));
task.Wait();
Хулоса: Thread идоракунии мустақим бо сариҳои ОС аст, Task роҳи қулайи кор бо амалиётҳои асинхронӣ ва параллелӣ бо истифода аз пули сариҳо мебошад.