簡體   English   中英

在 C# 中收到事件時的 Console.ReadLine() 語句中

[英]In a Console.ReadLine() statement when an event is received in C#

我目前正在編寫一個程序,該程序涉及通過串行連接發送和接收消息。 為此,我使用事件來處理消息的接收(我嘗試在沒有它們的情況下這樣做,但除了問題我沒有發現任何問題,我不確定這是否是由於發送消息部分的代碼或消息的接收部分)和一個問題出現了。 如果我在一個 Console.ReadLine 語句中,我還沒有寫任何東西,並且收到了一個事件,是否會收到和處理該事件? 更准確地說,在那種情況下會發生什么?

閱讀有關引發事件的線程的串行連接文檔

從 SerialPort object 接收數據時,在輔助線程上引發 DataReceived 事件。 由於此事件是在輔助線程而不是主線程上引發的,因此嘗試修改主線程中的某些元素(例如 UI 元素)可能會引發線程異常。 如果需要修改主窗體或控件中的元素,請使用 Invoke 將更改請求發回,這將在適當的線程上完成工作。

由於它是在后台線程上接收的,它將獨立於您的其他線程運行,可能與您的 readLine 同時運行。 因此,您需要確保代碼是線程安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM