Helpex - Trao đổi & giúp đỡ Đăng nhập
2

Điều tôi muốn là ứng dụng đọc dòng đầu tiên từ tệp văn bản và xuất nó vào hộp văn bản textReply, sau đó đợi X thời gian trước khi đọc và xuất dòng tiếp theo.

Dim fileIn As New System.IO.StreamReader("C:\test.txt")
Dim strData As String = ""
While (Not (fileIn.EndOfStream))
    strData = fileIn.ReadLine()
    textReply.Text = textReply.Text & strData & vbCr
    System.Threading.Thread.Sleep(1000)
End While

Như bạn có thể thấy, tôi đã thử ngủ chuỗi (không lý tưởng vì tôi muốn ứng dụng luôn phản hồi nhưng đó là một vấn đề khác!) Nhưng mỗi lần nó đọc toàn bộ tệp và đổ rất nhiều vào hộp văn bản.

Lý do cuối cùng là nó sẽ được sử dụng cho kết nối nối tiếp với một thiết bị cần thời gian để truyền dữ liệu đến thiết bị và để thiết bị phản hồi với mỗi dòng được gửi.

2 hữu ích 1 bình luận 1.2k xem chia sẻ
2

Bạn có thể tạo một Chuỗi hàng đợi, thêm từng dòng vào danh sách khi bạn đang đọc tệp, sau đó bạn có thể thăm dò nó bằng bộ đếm thời gian và thêm chúng vào hộp văn bản của bạn tại một thời điểm.

Public Class Form1
    Dim myQueue As Queue(Of String) = New Queue(Of String)

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim fileIn As New System.IO.StreamReader("C:\test.txt")
        Timer1.Start()
        Dim strData As String = ""
        While (Not (fileIn.EndOfStream))
            strData = fileIn.ReadLine()
            myQueue.Enqueue(strData)
        End While
    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If myQueue.Count > 0 Then
            textReply.Text += myQueue.Dequeue & vbCrLf
        End If
    End Sub
End Class
2 hữu ích 1 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ vb.net sleep wait , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading