麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C#委派timer和線程以及GC

2019-11-14 16:00:38
字體:
來源:轉載
供稿:網友
代碼
Code highlighting PRoduced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//小張類
    public class MrZhang
    {
        //其實買車票的悲情人物是小張
        public static void BuyTicket()
        {
            Console.WriteLine("NND,每次都讓我去買票,雞人呀!");
        }
public static void BuyMovieTicket()
        {
            Console.WriteLine("我去,自己泡妞,還要讓我帶電影票!");
        }
    }
//小明類
    class MrMing
    {
        //聲明一個委托,其實就是個“命令”
        public delegate void BugTicketEventHandler();
public static void Main(string[] args)
        {
            //這里就是具體闡述這個命令是干什么的,本例是MrZhang.BuyTicket“小張買車票”
            BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
//這時候委托被附上了具體的方法
            myDelegate();
            Console.ReadKey();
        }
    }
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); 
這是委托的聲明方法, BugTicketEventHandler(委托的方法);委托的方法必須要加上,因為委托的構造函數是不為空的。
注:委托的參數和返回類型,都要和你要具體委托的方法要一致,例:
  public delegate void BugTicketEventHandler();

  public static void BuyTicket()
  {
   Console.WriteLine("NND,每次都讓我去買票,雞人呀!");
  }

 

委托鏈:

myDelegate += MrZhang.BuyMovieTicket;

結束!


 

委托的用途和c++的函數指針相似,但還有提高. 可以把函數做參數傳遞在你有好幾個函數,而又事先不知道改運行那個好時,就是典型的應用例子. 比如你要實現兩操作數的加減乘除那就可以定義一個委托 四個函數具體用什么操作需要用戶決定, 這時就可以再定義一個以委托作為參數的函數實現什么運算就把相應的函數傳進去就行了

 

事件監聽函數+=委托(需要執行函數)
在System.Timers.Timer中用到

關于timer 的三種形式
//1.實現按用戶定義的時間間隔引發事件的計時器。此計時器最宜用于 Windows 窗體應用程序中,并且必須在窗口中使用。 
System.Windows.Forms.Timer 

// 2.提供以指定的時間間隔執行方法的機制。無法繼承此類。 
System.Threading.Timer 

//3.在應用程序中生成定期事件。 
System.Timers.Timer 
下面兩種應該是不同線程,無法直接使用form上面的控件
第二種的timer.dispose()結束有延遲,類似買早餐排隊,當在最大早餐(線程達到)時,多次申請早餐(線程)會被記錄,造成執行結束行為時,持續的資源消耗。
第三種的timer.stop()會取消申請,雖然有幾個延遲,影響不大
所以,第一種不用申請線程,單線程會假死,第二和第三需要申請線程
寫在最后吧。GC,垃圾回收裝置 暫時不接觸DLL,非沖突就用close和dispose吧,析構有可能會沖突GC,其實dispose如果不追求可能也沒關系
需要注意的是在response的clear和end 第一個清理緩沖區,第二個結束js ?直接輸出。
———————————————————————————————————————————————
不同線程之間的通訊
mythread = new Thread(new ThreadStart(BeginListen));
mythread.Start();
 
private void BeginListen()
        {
SetLabelEventHandler setLabelEventHandler = delegate() //匿名委托+Invoke
            {
                label1.Text = "我改變了它";
            };
            label1.Invoke(setLabelEventHandler);
}—————————————————————————————————————————————————
delegate和event
http://www.companysz.com/shensr/archive/2005/11/24/283653.html

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 美女在线观看视频一区二区 | 国产一国产一级毛片视频 | 亚洲综合视频在线播放 | 天天干导航 | 免费在线观看毛片视频 | 黄色毛片a级 | 国产精品久久久免费看 | 91麻豆精品国产91久久久无需广告 | 黄色特级毛片 | 黄色大片在线免费观看 | 久草在线播放视频 | 国产乱色精品成人免费视频 | 日韩字幕在线 | 一级免费黄色 | 久久久久久久91 | 中国av免费观看 | 奶子吧naiziba.cc免费午夜片在线观看 | 二区三区四区 | 一级毛片在线免费观看 | 蜜桃精品视频 | 欧美日本色 | 国产一级毛片高清视频完整版 | 99视频网址 | 久久国产精品久久久久 | 中午日产幕无线码1区 | 欧美日韩亚洲一区二区三区 | 久久成人综合视频 | 毛片成人网 | 成人在线精品视频 | 中文字幕免费在线看 | 亚洲国产色婷婷 | 国产九色在线观看 | 成人羞羞网站入口 | 国产精品久久久久久久久久10秀 | 一夜新娘第三季免费观看 | 激情网站在线观看 | 一区二区三区日韩电影 | 91精品国产福利尤物免费 | 毛片视频网站在线观看 | 久久爽精品区穿丝袜 | 久久精品电影网 |