ContextSwitchDeadlock
- From: "Benjamin Vigneaux" <benj@xxxxx>
- Date: Tue, 17 Jun 2008 10:42:34 -0400
Hello!!
Well... this code works perfectly... what it does:
It navigates a folder tree of N-Levels and it moves all the files from each folder to the root folder, then deletes the empty folders.
protected void MoveStuff(DirectoryInfo RootFolder)
{
if (RootFolder.FullName != textBoxROOTpath.Text)
{
foreach (FileInfo NextFile in RootFolder.GetFiles())
{
NextFile.CopyTo(textBoxROOTpath.Text+"\\"+NextFile.Name,true);
NextFile.Delete();
progressBar.PerformStep();
}
}
foreach (DirectoryInfo NextFolder in RootFolder.GetDirectories())
{
MoveStuff(NextFolder);
}
foreach (DirectoryInfo EmptyFolder in RootFolder.GetDirectories())
{
EmptyFolder.Delete();
}
}
My problem is, that it gets ugly with large files because of memory usage, I guess.... the program becomes nonresponsive for a while, even though, most of the cases, it will become responsive again... in one od the hungups I came across this...
***
ContextSwitchDeadlock was detected:
The CLR has been unable to transition from COM context 0x1f6050 to COM context 0x1f61c0 for 60 seconds.
The thread that owns the destination context/apartment is most likely either doing a non pumping wait
or processing a very long running operation without pumping Windows messages.
This situation generally has a negative performance impact and may even lead to the application becoming
non responsive or memory usage accumulating continually over time.
To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives
(such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.
***
I kind of understand what it says... but I do not know how to implement a solution...
Any ideas?
Benjamin.
.
- Follow-Ups:
- Re: ContextSwitchDeadlock
- From: Benjamin Vigneaux
- Re: ContextSwitchDeadlock
- From: Peter Duniho
- Re: ContextSwitchDeadlock
- From: Jon Skeet [C# MVP]
- Re: ContextSwitchDeadlock
- Prev by Date: Re: Placing a context menu?
- Next by Date: Re: Placing a context menu?
- Previous by thread: Placing a context menu?
- Next by thread: Re: ContextSwitchDeadlock
- Index(es):
Relevant Pages
|