.


:




:

































 

 

 

 


Interlocked.Increment(ref SharedRes.Count);




Console.WriteLine(Thrd.Name + " Count = " + SharedRes.Count);

}

}

}

// SharedRes.Count , class DecThread { public Thread Thrd;

public DecThread(string name) {

Thrd = new Thread(this.Run);

Thrd.Name = name;

Thrd.Start();

}

// , void Run() {

for(int i=0; i<5; i++) {

Interlocked.Decrement(ref SharedRes.Count);

Console.WriteLine(Thrd.Name + " Count = " + SharedRes.Count);

}

}

}

class InterlockedDemo { static void Main() {

// .

IncThread mtl = new IncThread(" "); DecThread mt2 = new DecThread(" ");

Mtl.Thrd.Join(); mt2.Thrd.Join();

}

}

, .NET Framework 4.0

, Semaphore AutoResetEvent, .NET Framework, 1.1.

, .NET Framework. .NET Framework 4.0 . .

 

 

 

Barrier

 

 

,

 

CountdownEvent

 

,

 

ManualResetEventSlim

 

ManualResetEvent

 

Semaphoreslim

 

Semaphore

 

, , , .

. , - . .

Thread. Abort (). .

Public void Abort()

Abort () ThreadAbortException , . , , . Abort () , , , Abort () Join (). , Abort () . , , , finally .

Abort () .

// Abort().

Using System;

Using System.Threading;

class MyThread {

Public Thread Thrd;

public MyThread(string name) {

Thrd = new Thread(this.Run);

Thrd.Name = name;

Thrd.Start();

// , void Run() {

Console.WriteLine(Thrd.Name + " .");

for (int i = 1; i <= 1000; i++) {

Console.Write(i + " "); if((i %10)==0) {

Console.WriteLine();

Thread.Sleep(250);

}

}

Console.WriteLine (Thrd.Name + 11 .");

}

}

class StopDemo {

static void Main() {

MyThread mtl = new MyThread(" ");

Thread.Sleep (1000); //

Console.WriteLine(" ."); mtl.Thrd.Abort();

mtl.Thrd.Join(); // Console.WriteLine(" .");

}

}





:


: 2016-12-03; !; : 388 |


:

:

, .
==> ...

1735 - | 1525 -


© 2015-2024 lektsii.org - -

: 0.013 .