程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#基礎異步回調類

C#基礎異步回調類

編輯:.NET實例教程

using System;
using System.IO;

public class AsyncHronousIO
...{
    FileStream myFileStream;
    int lngNumber;static bool IsEnd;
    static void Main()
    ...{
        AsyncHronousIO myAsyncHronousIO = new AsyncHronousIO();
        myAsyncHronousIO.longProcessWrite();
    }
    public void longProcessWrite()
    ...{
        File.Delete("TT.txt");
        Console.Write("輸入數據大小!");
        //為什麼數字大了文件就顯示0字節,裡邊沒有內容?
        lngNumber = int.Parse(Console.ReadLine());
        byte[] b = new byte[lngNumber];
        for (int i = 0; i < lngNumber; i++)b[i]=(byte)i;
        Console.WriteLine("寫入大量數據!");
        //聲明異步回調類,其實就是啟動了一個新的線程,在線程結束時調用WriteEnd
        AsyncCallback myAsyncCallback = new AsyncCal lback(WriteEnd);
        //創建文件流
        myFileStream = new FileStream(@"TT.txt", FileMode.Create);
        Console.WriteLine("大量數據寫入! TT.txt");
        myFileStream.BeginWrite(b, 0, b.Length, myAsyncCallback, null);
        do Console.Write(".");//當數字較大此處才能在在IsEnd == true執行輸出多個“.”
        while (AsyncHronousIO.IsEnd == false);
        myFileStream.Flush();
    }
    public void WriteEnd(IAsyncResult asyncResult)
    ...{
        AsyncHronousIO.IsEnd = true;
        Console.WriteLine("寫入完畢! TT.txt");
    }


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved