.


:




:

































 

 

 

 





. Main () tt TickTock, . Run () MyThread Tick, "", Tick (). Tock, "", Tock (). true . , true, , false.

Tick () Tock (). Tick (), .

public void Tick(bool running) { lock(lockOn) {

if(!running) { //

Monitor.Pulse(lockOn); // return;

}

Console.Write(" ");

Monitor.Pulse(lockOn); // Tock()

Monitor.Wait(lockOn); // Tock()

}

}

Tick () lock. , Wait () Pulse () . Tick () , . false, . Pulse (), , . . Tick (), "" , Pulse (),

Wait (). Pulse () , Wait () Tick () , Pulse () . , Tick (), "" , , .

() Tick (), , "". , () "", Pulse (), () . Tick () () , .. .

, Pulse () , Wait (). , Wait () , Tick () (), . , , . Pulse () , . Pulse () , . , "", <Ctrl+C>. , Wait () (), Pulse () , , () , .

, , , , , , Wait () Pulse (), . TickTock . Wait () Pulse () .

// TickTock. class TickTock {

object lockOn = new object ();

public void Tick(bool running) { lock(lockOn) {

if (!running) { // return;

}

Console.Write(" ");

}

}

public void Tock (bool running) { lock(lockOn) {

if(!running) { // return;

}





:


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


:

:

, , .
==> ...

1853 - | 1496 -


© 2015-2024 lektsii.org - -

: 0.01 .