歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C#異步編程初學筆記

C#異步編程初學筆記

日期:2017/3/1 9:43:15   编辑:Linux編程

委托

C#的異步編程是用委托實現的,關鍵字是delegate 。它的意義其實是簡單明了的,正如它的名字一樣是用於被委托執行某些程序。怎樣聲明一個委托對象就不說了,網上很多資料。

invoke和begininvoke

這兩個函數都是用於啟動委托所負責的函數,其功能相信在網上隨便找下也能找到。invoke實現的是同步運行,begininvoke實現的是異步運行,通常我們使用begininvoke來避免主線程被阻塞。但是,今天剛用到這個異步編程方法,用了begininvoke之後發現被委托函數根本沒有運行。郁悶了好久不知道是什麼問題,然後我想到用Endinvoke方法試試看,結果發現這一句代碼出錯,出錯原因是“線程間操作無效,。。。”解決方法其實也很簡單,但要是沒想到這個原因也挺頭疼的。

只要加一句CheckForIllegalCrossThreadCalls = false; 即可,這個屬性用於檢測是否存在線程間通信,如果有則報錯,所以需把這個給無效話。

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm

讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm

讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm

C++11 獲取系統時間庫函數 time since epoch http://www.linuxidc.com/Linux/2014-03/97446.htm

C++11中正則表達式測試 http://www.linuxidc.com/Linux/2012-08/69086.htm

Copyright © Linux教程網 All Rights Reserved