| |
 | Posted by Ali Çehreli (acehreli) in reply to Can Alpay Çiftçi (canalpay) | Permalink Reply |
|
Ali Çehreli (acehreli) 
| 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. ]
|