Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. // 名前空間の登録
  2. using System; // 共通データ型と基本クラス(System名前空間)
  3. using System.Threading; // マルチスレッド(System.Threading名前空間)
  4.  
  5. // デリゲートの定義.
  6. delegate void AsyncronousFuncDelegate(); // 引数と戻り値が無い関数を持つデリゲートAsyncronousFuncDelegate.
  7.  
  8. // MainClassの定義
  9. class MainClass
  10. {
  11. // Mainメソッドの定義
  12. static void Main()
  13. {
  14.  
  15. // デリゲートの生成.
  16. AsyncronousFuncDelegate asyncronousFunc = new AsyncronousFuncDelegate(AsyncronousFunc); // AsyncronousFuncを非同期実行するAsyncronousFuncDelegateオブジェクトasyncronousFuncを生成.
  17.  
  18. // 非同期処理の実行.
  19. IAsyncResult iar = asyncronousFunc.BeginInvoke(null, null); // コンパイラによって生成されたasyncronousFunc.BeginInvokeで非同期実行し, 戻り値のIAsyncResultオブジェクトをiarに格納.
  20.  
  21. // "Main(1)"~"Main(3)"を出力.
  22. for (int i = 1; i <= 3; i++) // iが1から3まで繰り返す.
  23. {
  24.  
  25. // "Main(i)"の出力.
  26. Console.WriteLine("Main(" + i + ")"); // Console.WriteLineで"Main(i)"を出力.
  27.  
  28. // 1秒休止.
  29. Thread.Sleep(1000); // Thread.Sleepで1000ミリ秒(1秒)休止.
  30.  
  31. }
  32.  
  33. // 非同期処理の完了まで待機.
  34. asyncronousFunc.EndInvoke(iar); // asyncronousFunc.EndInvokeで完了まで待つ.(iarを渡す.)
  35.  
  36. // "Finish!"と出力.
  37. Console.WriteLine("Finish!"); // "Finish!"と出力.
  38.  
  39. }
  40.  
  41. // 非同期処理スタティックメソッドAsyncronousFunc.
  42. static void AsyncronousFunc()
  43. {
  44.  
  45. // "AsyncronousFunc(1)"~"AsyncronousFunc(5)"を出力.
  46. for (int i = 1; i <= 5; i++) // iが1から5まで繰り返す.
  47. {
  48.  
  49. // "AsyncronousFunc(i)"の出力.
  50. Console.WriteLine("AsyncronousFunc(" + i + ")"); // Console.WriteLineで"AsyncronousFunc(i)"を出力.
  51.  
  52. // 1秒休止.
  53. Thread.Sleep(1000); // Thread.Sleepで1000ミリ秒(1秒)休止.
  54.  
  55. }
  56.  
  57. }
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement