91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何使用時間控件

發布時間:2021-07-07 15:53:06 來源:億速云 閱讀:240 作者:Leah 欄目:編程語言

C#中如何使用時間控件,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

提問

為什么我用C#時間控件監聽UDP數據時,界面是沒有響應了呢?
我thread的線程就可以!
監聽方法如下:

IPEndPoint pp=new IPEndPoint(IPAddress.Parse("127.0.0.1"),12345);  UdpClient udp1=new UdpClient(pp);  while(true)  {       IPEndPoint p=null;       this.textBox2.Text=new UTF8Encoding().GetString(udp1.Receive(ref p));     }

解答

如果你用了TIMER控件并在里面加了上述方法,會出現這樣的情況:
(假設你的TIMER的interval屬性是1000,你的UDP的TIMEOUT是2000……)
TIMER被觸發……
執行到了udp1.Receive(ref p));……
由于Receive是個同步等待的方法,程序會wait……
udp的超時是2000,但是到了1000ms后TIMER又一次被觸發,結果就是udp1尚在等待Receive結束,你又調用了它一次= =

而正是因為Receive方法是同步等待的,所以你在Thread里運行時一次Receive沒結束是一定不會跳回"while(true)"去再Recieve一次滴

C#時間控件監聽超時的解決方法:

1.丟到你自己的線程里去,不要用timer;

2.把udp的超時屬性改的比timer的interval短

看完上述內容,你們掌握C#中如何使用時間控件的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绿春县| 义乌市| 婺源县| 禹州市| 舒兰市| 克拉玛依市| 怀集县| 义乌市| 竹北市| 青州市| 新津县| 孟村| 公安县| 平南县| 塘沽区| 金湖县| 沅陵县| 长宁县| 当雄县| 大竹县| 陆河县| 孟津县| 通许县| 运城市| 吕梁市| 黄浦区| 柯坪县| 习水县| 梁山县| 邮箱| 墨竹工卡县| 阿克苏市| 桃园市| 米泉市| 邻水| 达拉特旗| 基隆市| 鹤岗市| 紫金县| 本溪| 兴和县|