Олон урсгалыг үүсгэн удирдах

Олон урсгал ямар хэрэгтэй вэ? хичээлд програмчлалын C# хэл дээрх програмд Multithreading буюу олон урсгалыг үүсгэн удирдах шаардлага хэрхэн үүсдэг тохиолдолыг дэлгэрэнгүй үзсэн. Олон урсгалыг үүсгэн удирдах ажиллагааг программд яаж хэрэгжүүлэхийг судлахын өмнө урсгал буюу thread -ийг үүсгэх ажиллагааг дараах схемээс харцгаая. Урсгал буюу thread -ийг үүсгэхдээ Thread классыг ашигладаг. Классын байгуулагч арга шинээр үүсэх урсгал эхлэхэд ажиллах аргыг заах делегат төрлийн нэг параметрийг авдаг.

Материалыг тусгай эрхтэй хэрэглэгч үзнэ.

request_quoteТусгай эрх авах

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 2141 Төлбөртэй

Reflection гэдэг үгийг монголчилбол тусгал эсвэл ойлт гэж хэлж болно. Технологийн талаар мэдээлэл хайн судлахын тулд орчуулгаар тогтоох гэснээс шууд Reflection гэж хэрэглэвэл илүү. Reflection гэж юу болох талаар ярилцая. .NET Framework орчинд компиляц хийгдсэн ердийн dll эсхүл exe файлыг авч үзье. Энд бид дурын dll эсхүл exe файл биш яг .NET Framework -ийн бүрэлдхүүнд багтсан аль нэгэн хэл дээр бичин компиляц хийн гаргасан dll эсхүл exe файл гэдгийг онцлоё. dll эсхүл exe файлаа Ассемблай /Assembly/ гэж нэрлэе.

  Нээгдсэн тоо: 618 Төлбөртэй

Делегат нь аргыг заасан обьектоор илэрхийлэгдэнэ. Өөрөөр хэлбэл делегат гэдэг нь аргын заагч бөгөөд түүгээр тухайн аргыг дуудаж болно.

Делегатийн тодорхойлолт

Делегатийг зарлахдаа delegate түлхүүр үгийг ашиглах ба түүний араас буцаах төрөл, нэр, параметрүүд байрлана. Жишээ нь

delegate void Message();

Message делегатийн буцаах төрөл void (өөрөөр хэлбэл юу ч буцаахгүй) бөгөөд ямарч параметрийг авахгүй. Энэ нь Message делегат ямарч параметр авдаггүй бөгөөд юу ч буцаадаггүй дурын аргыг зааж болно гэсэн үг.
Message делегатийн хэрэглэгээг

Message mes;            // 2. делегатийн хувьсагчийг үүсгэх
mes = Hello;            // 3. хувьсагчид аргын хаягийг олгох
mes();                  // 4. аргыг дуудах

void Hello() => Console.WriteLine("Hello World");
delegate void Message(); // 1. делегатийг зарлах

үзүүлсэн дээрх кодийг авч үзье.

  Нээгдсэн тоо: 559 Төлбөртэй

.NET фреймворк ердийн төрлүүдээс гадна ерөнхийлөгдсөн (generics) төрлүүд болон ерөнхийлөгдсөн аргуудын үүсгэлтийг дэмждэг. Энэхүү боломжийн онцлогийг судлахын өмнө ерөнхийлөгдсөн төрлүүд байхгүй бол үүсч болох асуудлуудыг авч үзье. Жишээ нь

class Person
{
    public int Id { get;}
    public string Name { get;}
    public Person(int id, string name)
    {
        Id = id;
        Name = name;
    }
}

гэж хэрэглэгчийн өгөгдлийг хадгалах классийг тодорхойллоо гэж үзье. Person класст Id - хэрэглэгчийн давтагдахгүй идентификатор, Name - хэрэглэгчийн нэр гэсэн хоёр шинжийг тодорхойлсон. Энд хэрэглэгчийн идентификаторийг тоон утгаар өгсөн тул шинж 1, 2, 3, 4 гэх мэтээр утгуудыг авна.

  Нээгдсэн тоо: 496 Бүртгүүлэх

Хэрвээ системийн өөрийн дотоод онцгой нөхцлийн төрлүүд тохиромжгүй бол бид өөрсдөө төрлүүд үүсгэж болно. Бүх онцгой нөхцлийн суурь класс Exception учраас өөрийн төрлийг үүсгэхдээ бид энэ классаас удамшуулна.  
Жишээ нь манай програмд насны хязгаарлалт байлаа гэе.

try
{
    Person person = new Person { Name = "Tom", Age = 17 };
}
catch (Exception ex)
{
    Console.WriteLine($"Алдаа: {ex.Message}");
}
 
class Person
{
    private int age;
    public string Name { get; set; } = "";
    public int Age
    {
        get => age;
        set
        {
            if (value < 18)
                throw new Exception("18 нас хүрээгүй бол бүртгэл хаалттай");
            else
                age = value;
        }
    }
}

Person классийн age шинжид утга олгохдоо шалгалт хийн нас 18 -аас бага бол онцгой нөхцлийг үүсгэнэ.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 416

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 505

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 487

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 555

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 624

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 614

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 776

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 960

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 911

 
Энэ долоо хоногт

тэнцэтгэл биш хэдэн бүхэл тоон шийдтэй вэ?

Нээгдсэн тоо : 1471

 

тэгшитгэлийг бод.

Нээгдсэн тоо : 2138

 

b1=3, bn=96, Sn=189 геометр прогресийн 8-р гишүүнийг ол.

Нээгдсэн тоо : 956