Windows Dev Center

Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

IsolatedStorageFileStream.IsAsync Property

Gets a Boolean value indicating whether the IsolatedStorageFileStream object was opened asynchronously or synchronously.

Namespace:  System.IO.IsolatedStorage
Assembly:  mscorlib (in mscorlib.dll)

public override bool IsAsync { get; }

Property Value

Type: System.Boolean
true if the IsolatedStorageFileStream object supports asynchronous access; otherwise, false.

Asynchronous IsolatedStorageFileStream objects cannot be created, unlike FileStream. However, the BeginWrite, BeginRead, EndWrite, and EndRead methods are supported on synchronous instances, with some performance penalties.

The following code example demonstrates how you can use the IsAsync property to verify that an IsolatedStorageFileStream is synchronous. For the complete context of this example, see the IsolatedStorageFileStream overview.

public double SetNewPrefsForUser()
{
    try
    {
        byte inputChar;
        IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
            IsolatedStorageScope.Assembly |
            IsolatedStorageScope.Domain,
            typeof(System.Security.Policy.Url),
            typeof(System.Security.Policy.Url));

        // If this is not a new user, archive the old preferences and  
        // overwrite them using the new preferences. 
        if (!this.myNewPrefs)
        {
            if (isoFile.GetDirectoryNames("Archive").Length == 0)
                isoFile.CreateDirectory("Archive");
            else
            {

                IsolatedStorageFileStream source =
                    new IsolatedStorageFileStream(this.userName, FileMode.OpenOrCreate,
                    isoFile);
                // This is the stream from which data will be read.
                Console.WriteLine("Is the source file readable? " + (source.CanRead ? "true" : "false"));
                Console.WriteLine("Creating new IsolatedStorageFileStream for Archive.");

                // Open or create a writable file.
                IsolatedStorageFileStream target =
                    new IsolatedStorageFileStream("Archive\\ " + this.userName,
                    FileMode.OpenOrCreate,
                    FileAccess.Write,
                    FileShare.Write,
                    isoFile);
                Console.WriteLine("Is the target file writable? " + (target.CanWrite ? "true" : "false"));
                // Stream the old file to a new file in the Archive directory. 
                if (source.IsAsync && target.IsAsync)
                {
                    // IsolatedStorageFileStreams cannot be asynchronous.  However, you 
                    // can use the asynchronous BeginRead and BeginWrite functions 
                    // with some possible performance penalty.

                    Console.WriteLine("IsolatedStorageFileStreams cannot be asynchronous.");
                }

                else
                {
                    Console.WriteLine("Writing data to the new file.");
                    while (source.Position < source.Length)
                    {
                        inputChar = (byte)source.ReadByte();
                        target.WriteByte(inputChar);
                    }

                    // Determine the size of the IsolatedStorageFileStream 
                    // by checking its Length property.
                    Console.WriteLine("Total Bytes Read: " + source.Length);

                }

                // After you have read and written to the streams, close them.
                target.Close();
                source.Close();
            }
        }

        // Open or create a writable file with a maximum size of 10K.
        IsolatedStorageFileStream isoStream =
            new IsolatedStorageFileStream(this.userName,
            FileMode.OpenOrCreate,
            FileAccess.Write,
            FileShare.Write,
            10240,
            isoFile);
        isoStream.Position = 0;  // Position to overwrite the old data.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft