Bilgisayarda her açılan program kendisi için bir kanal açar ve komutları bu kanal üzerinden işlemciye iletir. Siz programınızda birden fazla işlemi aynı anda kullancaksanız normal durumda bu işlemler aynı kanalı kullanacaktır. Bu işlemlerden birisi sonsuz döngüye girdiğinde kanalı işgal edeceği için diğer işlemler bu kanalı kullanamayacak ve programınız kilitlenecektir. Bu duruma örnek olarak aşaığdaki kodu gösterebiliriz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i = 0;
bool Dur = false;
private void Say()
{
while (true)
{
if (Dur)
break;
i++;
}
Dur = false;
}
private void btnBasla_Click(object sender, EventArgs e)
{
Say();
}
private void btnDur_Click(object sender, EventArgs e)
{
Dur = true;
}
}