C# example showing how to read a file simultaneously from different threads without having any locks.

// Reading a file without locking it

byte[] oFileBytes = null;
string myFile = "TalkDotNet.txt";

using(System.IO.FileStream fs = System.IO.File.Open(
    myFile,
    System.IO.FileMode.Open,
    System.IO.FileAccess.Read,
    System.IO.FileShare.ReadWrite))
{
    int numBytesToRead = Convert.ToInt32(fs.Length);
    oFileBytes = new byte[(numBytesToRead)];
    fs.Read(oFileBytes, 0, numBytesToRead);
}