Click here to Skip to main content
15,880,725 members
Home / Discussions / C#
   

C#

 
AnswerRe: How can i write application in Doc/view architecture in C# ? Pin
Pete O'Hanlon15-Jan-08 3:16
mvePete O'Hanlon15-Jan-08 3:16 
QuestionNative XP/Vista Menu Pin
KienNT7814-Jan-08 17:53
KienNT7814-Jan-08 17:53 
GeneralRe: Native XP/Vista Menu Pin
Paul Conrad17-Jan-08 13:31
professionalPaul Conrad17-Jan-08 13:31 
GeneralRe: Native XP/Vista Menu Pin
Laserson24-Aug-09 19:38
Laserson24-Aug-09 19:38 
Generaldebugging Pin
justintimberlake14-Jan-08 17:22
justintimberlake14-Jan-08 17:22 
GeneralRe: debugging Pin
Skippums14-Jan-08 17:32
Skippums14-Jan-08 17:32 
QuestionDoes a race condition exist in the following code? Pin
Skippums14-Jan-08 14:57
Skippums14-Jan-08 14:57 
GeneralRe: Does a race condition exist in the following code? Pin
S. Senthil Kumar14-Jan-08 18:03
S. Senthil Kumar14-Jan-08 18:03 
Yes, you do have a race condition. The lock block's scope is within the try block, so it is essentially
try
{
   try
   {
      Monitor.Lock(s_Lock);
      ...
    }
    finally
    {
      Monitor.Unlock(s_Lock);
    }
}
finally
{
   if (fs != null)
      fs.Close();
}


So yeah, DeleteFile could potentially run in parallel with the finally block.

Moving the lock block outside try/finally solves the problem. And if all you're doing is closing the FileStream in the finally block, you might want to use a using statement instead. Like
// Do some stuff that CANNOT be done after acquiring the lock
lock(s_Lock)
{
   using(FileStream fs = new FileStream(...)
   {
      fs.Read(...);
   }
}


Hope that helps.

Regards
Senthil [MVP - Visual C#]
_____________________________
My Blog | My Articles | My Flickr | WinMacro

GeneralRe: Does a race condition exist in the following code? Pin
Skippums15-Jan-08 4:48
Skippums15-Jan-08 4:48 
GeneralRe: Does a race condition exist in the following code? Pin
PIEBALDconsult15-Jan-08 15:45
mvePIEBALDconsult15-Jan-08 15:45 
GeneralRe: Does a race condition exist in the following code? Pin
Pete O'Hanlon16-Jan-08 1:20
mvePete O'Hanlon16-Jan-08 1:20 
QuestionDynamic Method Delegate [modified] Pin
Gywox14-Jan-08 14:25
Gywox14-Jan-08 14:25 
GeneralRe: Dynamic Method Delegate Pin
Mark Churchill14-Jan-08 21:49
Mark Churchill14-Jan-08 21:49 
GeneralRe: Dynamic Method Delegate Pin
Gywox14-Jan-08 23:26
Gywox14-Jan-08 23:26 
GeneralRe: Dynamic Method Delegate Pin
Mark Churchill15-Jan-08 2:00
Mark Churchill15-Jan-08 2:00 
GeneralComponent1 vs Infragistics vs Syncfusion Pin
kozu14-Jan-08 13:03
kozu14-Jan-08 13:03 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
Not Active14-Jan-08 14:31
mentorNot Active14-Jan-08 14:31 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
J$14-Jan-08 14:44
J$14-Jan-08 14:44 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
kozu14-Jan-08 18:15
kozu14-Jan-08 18:15 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
Nouman Bhatti14-Jan-08 22:32
Nouman Bhatti14-Jan-08 22:32 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
IAM...13-Mar-10 14:01
IAM...13-Mar-10 14:01 
Questionprogramming into smart card Pin
roonierobster14-Jan-08 12:04
roonierobster14-Jan-08 12:04 
QuestionC# .NET and a networked PC with MySQL running Pin
CoolBytes14-Jan-08 11:48
CoolBytes14-Jan-08 11:48 
GeneralRe: C# .NET and a networked PC with MySQL running Pin
DaveyM6914-Jan-08 12:10
professionalDaveyM6914-Jan-08 12:10 
GeneralRe: C# .NET and a networked PC with MySQL running Pin
Not Active14-Jan-08 12:13
mentorNot Active14-Jan-08 12:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.