2009年3月28日土曜日20:24:00

デリゲート(非同期)

タグ: by ゆの

短いから全部のせちゃえ。


プログラム

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace DelegateTestConsoleApplication
{
    class Program
    {
        /// <summary>
        /// 現在の繰り返した回数を表示
        /// 繰り返すたびにスリープ
        /// </summary>
        /// <param name="num">繰り返す回数</param>
        /// <param name="time">スリープする時間</param>
        public delegate void MessageNum( int num, int time );

        static void Main(string[] args)
        {
            const int num = 10;
            const int time = 200;

            MessageNum mn = ForLoopNumber;
            IAsyncResult ar = mn.BeginInvoke(num, time, null, null);

            for (int i = 0; i < num; i++)
            {
                Thread.Sleep(time * 2);
                Console.Write("<<{0}>> ", i);
            }

            mn.EndInvoke(ar);
            Console.WriteLine();
            mn(num, time);
            Console.WriteLine();
        }


        static void ForLoopNumber( int num, int time )
        {
            for (int i = 0; i < num; i++)
            {
                Console.Write("({0}) ", i);
                Thread.Sleep(time);
            }
        }
    }
}


出力結果

(0) (1) <<0>> (2) (3) <<1>> (4) (5) <<2>> (6) (7) <<3>> (8) (9) <<4>> <<5>> <<6>> <<7>> <<8>> <<9>>
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)

参考サイト

0 コメント

コメントを投稿する

0 件のコメント:

コメントを投稿

top