91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 18KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-10
  • 語言: C#
  • 標簽:

資源簡介

c# 實現多線程的操作,輪詢等待回調等異步操作,適合初學者的源碼

資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.Text;

using?System.Threading;

namespace?ConsoleApplication1
{
????public?delegate?string?AsyncDelegate(int?callDuration?out?int?threadId);
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????Fun1();
????????????Fun2();
????????????Fun3();
????????????Fun4();
????????????Console.ReadLine();
????????}
????????private?static?int?threadId;

????????//阻塞等待???使用?EndInvoke?等待異步調用??
????????static?void?Fun1()
????????{
????????????//創建示例類的實例。
????????????AsyncDemo?ad?=?new?AsyncDemo();
????????????//?創建委托
????????????AsyncDelegate?dlgt?=?new?AsyncDelegate(ad.TestMethod);
????????????//?委托在這里開始異步調用。
????????????IAsyncResult?ar?=?dlgt.BeginInvoke(5000out?threadId?null?null);
????????????//人為的線程阻塞。
????????????Thread.Sleep(0);
????????????Console.WriteLine(“主線程?{0}開始工作“Thread.CurrentThread.ManagedThreadId);
????????????//?委托開始EndInvoke調用,這個過程會使主線程等待異步調用完成并返回結果。
????????????string?ret?=?dlgt.EndInvoke(out?threadId?ar);
????????????Console.WriteLine(“使用?EndInvoke?等待異步調用!!!“);
????????????Console.WriteLine(“異步線程?{0}返回值?\“{1}\“.“?threadId?ret);
????????????Console.WriteLine(“主線程{0}結束工作“?Thread.CurrentThread.ManagedThreadId);
????????}
????????
????????//阻塞等待??使用?WaitHandle?等待異步調用
????????static?void?Fun2()
????????{
????????????AsyncDemo?ad?=?new?AsyncDemo();
????????????AsyncDelegate?dlgt?=?new?AsyncDelegate(ad.TestMethod);
????????????IAsyncResult?ar?=?dlgt.BeginInvoke(5000out?threadId?null?null);
????????????Thread.Sleep(0);
????????????Console.WriteLine(“主線程?{0}開始工作“?Thread.CurrentThread.ManagedThreadId);
????????????//主線程在這里等待,直到異步線程執行完。
????????????ar.AsyncWaitHandle.WaitOne();
????????????//?和前一方案的區別在于,你可以在異步調用完成后,獲取異步調用返回值之前
????????????//在這里做點任何你想作的事。
????????????//調用EndInvoke獲取異步調用的返回結果.
????????????string?ret?=?dlgt.EndInvoke(out?threadId?ar);
????????????Console.WriteLine(“使用?WaitHandle?等待異步調用!!!“);
????????????Console.WriteLine(“異步線程?{0}返回值?\“{1}\“.“?threadId?ret);
????????????Console.WriteLine(“主線程{0}結束工作“?Thread.CurrentThread.ManagedThreadId);
????????}

????????//輪詢狀態????輪詢異步調用完成
????????static?void?Fun3()
????????{
????????????AsyncDemo?ad?=?new?AsyncDemo();
????????????AsyncDelegate?dlgt?=?new?AsyncDelegate(ad.TestMethod);
????????????IAsyncResult?ar?=?dlgt.BeginInvoke(5000out?threadId?null?null);
????????????Console.WriteLine(“使用輪詢異步調用!!!“);
????????????Console.WriteLine(“主線程?{0}開始工作“?Thread.CurrentThread.ManagedThreadId);
????????????//這里每隔10毫秒就檢測(輪詢)一下異步執行的狀態,
????????????//直到異步調用完成,IsCompleted的值變為ture為止。
????????????while?(ar.IsCompleted?==?false)
????????????{
????????????????Thread.Sleep(10);
????????????}

????????????//還記得微軟的那個善意的提醒嗎?雖然IsCompleted為true了,
????????????//我們還是調用一下EndInvoke,來獲取返回值。
????????????string?ret?=?dlgt.EndInvoke(out?threadId?ar);
????????????Console.WriteLine(“異步線程?{0}返回值?\“{1}\“.“?threadId?ret);
????????????Console.

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????16384??2010-06-07?16:59??ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe

?????文件??????15872??2010-06-07?16:59??ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.pdb

?????文件???????5632??2005-11-11?22:25??ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe

?????文件???????1972??2010-06-06?16:39??ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.csproj

?????文件????????617??2010-06-07?17:01??ConsoleApplication1\ConsoleApplication1\obj\ConsoleApplication1.csproj.FileListAbsolute.txt

?????文件??????16384??2010-06-07?16:59??ConsoleApplication1\ConsoleApplication1\obj\Debug\ConsoleApplication1.exe

?????文件??????15872??2010-06-07?16:59??ConsoleApplication1\ConsoleApplication1\obj\Debug\ConsoleApplication1.pdb

?????文件???????5691??2010-06-07?17:05??ConsoleApplication1\ConsoleApplication1\Program.cs

?????文件???????1221??2010-06-06?16:39??ConsoleApplication1\ConsoleApplication1\Properties\AssemblyInfo.cs

?????文件????????946??2010-06-06?16:39??ConsoleApplication1\ConsoleApplication1.sln

????..A..H.?????10752??2010-06-07?17:05??ConsoleApplication1\ConsoleApplication1.suo

?????目錄??????????0??2010-06-06?16:39??ConsoleApplication1\ConsoleApplication1\obj\Debug\TempPE

?????目錄??????????0??2010-06-06?16:43??ConsoleApplication1\ConsoleApplication1\bin\Debug

?????目錄??????????0??2010-06-07?16:59??ConsoleApplication1\ConsoleApplication1\obj\Debug

?????目錄??????????0??2010-06-06?16:38??ConsoleApplication1\ConsoleApplication1\bin

?????目錄??????????0??2010-06-06?16:41??ConsoleApplication1\ConsoleApplication1\obj

?????目錄??????????0??2010-06-06?16:39??ConsoleApplication1\ConsoleApplication1\Properties

?????目錄??????????0??2010-06-07?17:05??ConsoleApplication1\ConsoleApplication1

?????目錄??????????0??2010-06-06?16:39??ConsoleApplication1

-----------?---------??----------?-----??----

????????????????91343????????????????????19


評論

共有 條評論

相關資源