IsolatedStorageFileStream.IsAsync Proprietà

Definizione

Ottiene un valore booleano che indica se l'oggetto IsolatedStorageFileStream è stato aperto in modo sincrono o asincrono.

public override bool IsAsync { get; }

Valore della proprietà

true se l'oggetto IsolatedStorageFileStream supporta l'accesso asincrono; in caso contrario, false.

Esempio

Nell'esempio di codice seguente viene illustrato come usare la IsAsync proprietà per verificare che un oggetto IsolatedStorageFileStream sia sincrono. Per il contesto completo di questo esempio, vedere la IsolatedStorageFileStream panoramica.

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.

Commenti

Non è possibile creare oggetti asincroni IsolatedStorageFileStream , a differenza di FileStream. Tuttavia, i BeginWritemetodi , BeginRead, EndWritee EndRead sono supportati nelle istanze sincrone, con alcune penali sulle prestazioni.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Vedi anche