Professional Documents
Culture Documents
Detyrat:
1. Cilët janë delegatët e deklaruar në Dot Net Framework, dhe që mund të përdoren menjëherë. (5 pikë)
Delegatët e gatshëm në Dot Net Framework janë Action, Func, Predicate. Gjithashtu edhe EventHandler etj.
Overriding është mbishkrimi (ridefinimin) i metodës që është e trashëguar me një metodë të re me emrin e
njëjtë.
Overloading është prezenca e metodave me emër të njëjtë, por me listë të ndryshme të parametrave për nga
tipi dhe numri
3. A janë të lejuara deklarimet, komandat e mëposhtme: (përgjigju me PO ose JO) . (10 pikë)
5. Çfarë janë delegatët (delegates)? Shkruani një shembull të përdorimit të tyre! . (10 pikë)
/* * Delegatët janë tip që na mundëson t’i referohemi metodave(funksioneve).
* Definimi i delegatit përcakton signaturën e funksionit.
* Meqë është një tip i ri, ai mund të përdoret për të deklaruar
* variabla si dhe të përdoret si parametër në funksione.
*/
class CPublisher
{
public event EventHandler Ngjarja; //deklaro Event-in/Publish
public void Metoda()
{
Console.WriteLine("Filloi Metoda...");
if (DateTime.Now.Minute == 0 && Ngjarja != null)
Ngjarja(this, null); //Shkakto Event-in/Raise
}
}
class CSubscriber
{
CPublisher pub1 = new CPublisher();
public CSubscriber()
{
int curDay = DateTime.Now.Day;
pub1.Ngjarja += Sub1_Ngjarja; //Bashkengjit metoden/Subscribe,Attach
while (DateTime.Now.Day == curDay)
{
pub1.Metoda(); // Ekzekutimi i Metodes
Thread.Sleep(30 * 1000);
}
}
private void Sub1_Ngjarja(object sender, EventArgs e)
{
Console.WriteLine("Ora fiks: " + DateTime.Now.ToString());
Console.WriteLine("Filloi ngjarja");
}
}
class Program
{
static void Main(string[] args)
{
// Krijo nje subscriber qe ekzekutohet paralelisht
new Thread(() => new CSubscriber()).Start();
}
}
7. Është dhënë metoda Metoda1 e tipit void dhe pa parametra. Të tregohet se si mund të startohet 10
herë në mënyrë paralele, duke përdorur klasën Thread dhe metodat e saj. (10 pikë)
Zgjidhja:
a+b=3
3
a+b=5
5
a+b=9
a+b=13
9
13
fund
Press any key to continue
Ekzekutimi i plotë zgjat si më poshtë::
Në Main, kemi task-un t1 që zgjat (1+2) + (2+3) sekonda, si dhe task-un t2 që zgjat
(6+7)sekonda. Këta 2 task-a ekzekutohen njëri pas tjetrit, paralel me thread-in kryesor.
Për këtë arsye komplet programi zgjat 21 sekonda.
Menyra1() ekzekuton 2 task, por ato i thirr njërën pas tjetrës, për këtë arsye zgjat
(1+2) + (2+3) sekonda, në total 8 sekonda.
Menyra2() ekzekuton task-et t1 dhe t2 në mënyrë paralele. E para përfundon pas (4+5)
sekondash, e dyta pas (6+7) sekondash. Pra në total 13 sekonda