【发布时间】:2017-04-06 06:02:18
【问题描述】:
如果您运行以下代码,您将看到在运行Do[...]Loop 语句时您无法单击Button2:
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim xlApp As New Excel.Application
xlApp.Visible = True
Dim wb1 As Excel.Workbook
wb1 = xlApp.Workbooks.Open("C:\Book1.xlsx")
Dim wsSheet1 As Excel.Worksheet
wsSheet1 = CType(wb1.Sheets(1), Excel.Worksheet)
Do
wsSheet1.Cells.Copy()
wsSheet1.Cells.PasteSpecial(Paste:=Excel.XlPasteType.xlPasteValues)
Loop
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
MsgBox("Hello")
End Sub
End Class
如何在Do[...]Loop 语句运行时保持Form1 响应?
【问题讨论】:
-
如果您希望您的 UI 在长时间运行的任务期间响应,那么您必须使用辅助线程。这可以通过多种方式完成,包括使用
Task类。 -
很遗憾,这不是编码服务。您需要自己尝试一下,然后如果您遇到问题,有人可以帮助您解决问题。
标签: vb.net multithreading winforms