BeginCriticalRegion wird unterbrochen ???

29/03/2008 - 12:21 von Stephan | Report spam
Hallo zusammen,

obwohl ich in einer Methode die ich in einem eigenen Thread laufen lasse:

public void DoIt()
{
Thread.BeginCriticalRegion();

for (int i = 0; i < 10; i++)
{
Console.WriteLine("Thread:{0}, Step:{1}",
Thread.CurrentThread.ManagedThreadId, i);
Thread.Sleep(1000);
}

Thread.EndCriticalRegion();

}



die CriticalRegion eingebaut habe wird diese von

Thread t = new Thread(tstart);
t.Start();
Thread.Sleep(2000);
t.Abort();


vom Abort nach 2 Sek. unterbrochen.
Ich hàtte jetzt erwartet, dass das Abort erst greift wenn die CriticalRegion
verlassen wird. Ich also zehn Sekunden lang eine Ausgabe bekomme.
Warum wird der Thread schon vorher beendet.

Danke
Stephan
 

Lesen sie die antworten

#1 Thomas Scheidegger
29/03/2008 - 13:23 | Warnen spam
Hallo Stephan

Thread.BeginCriticalRegion();
Console.WriteLine("Thread:{0}, Step:{1}"...
Thread.Sleep(1000);
Thread.EndCriticalRegion();
vom Abort nach 2 Sek. unterbrochen.




Details ungeprüft,
aber innerhalb einer CR sind nur _sehr_ limitierte (low-level) Aktionen
möglich,
Console/Sleep usw sind da evtl. nicht angemessen...




Thomas Scheidegger - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/

Ähnliche fragen