July 04, 2010

Bunu diğer başlıktaki thread ile yapabilirsin. : http://ddili.org/forum/thread/319

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 04, 2010

Elim alışsın diye:

// Bu 'import'ları yazmaktan bıktım. Ben de std.all istiyorum... :)
// (std.all, bütün Phobos modüllerini "import edecek"; kolaylık...)
import std.stdio;
import core.thread;
import std.conv;
import std.string;

class SaniyeYazan : Thread
{
   bool bitti_mi;

   this()
   {
       super(&başlat);
       bitti_mi = false;
   }

   void bekle(double saniye)
   {
       /*
        * Hmmm... Bu çarpan daha önceki iş parçacığı kullanmayan programda
        * 100_000_000 idi; nasıl oluyor? Her neyse... Bununla küsuratlı
        * saniye olarak bekleyebiliyoruz
        */
       sleep(cast(long)(saniye * 10_000_000));
   }

   void başlat()
   {
       int sayaç;
       while (!bitti_mi) {
           ++sayaç;
           writeln(sayaç % 2 ? "/ tik \\" : "\\ tak /");
           bekle(1);
       }
   }

   void bitsin()
   {
       bitti_mi = true;
   }
}

void main()
{
   auto işçi = new SaniyeYazan;
   işçi.start();

   while (true) {
       writeln("Lütfen bir sayı girin (çıkmak için -1): ");
       auto sayı = to!int(strip(readln()));

       if (sayı == -1) {
           işçi.bitsin();  // işçiye de haber vermek gerek
           break;
       }

       writeln("Karesi: ", sayı * sayı);
   }

   /*
    * Öyle pat diye bitmek olmaz; işçiye temizlik işlerini bitirmesi için
    * zaman veriyoruz
    */
   thread_joinAll();
}

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2 3 4
Next ›   Last »